Creating a New Project on GTT

This section outlines the process to be followed for creating a new project with a custom device type, providing instructions for efficiently creating a project environment that supports custom audio configurations and leveraging the full capabilities of GTT with the Starter Kit.

  1. Creating a Project
  2. Adding a Device to the Project
  3. Leveraging AudioworX Audio Features

Creating a Project

Steps to create a new empty GTT project:

  1. Click the + button in the “Projects tab” of the “Home Screen” of GTT.
  2. Select Empty Template and provide project title and description.
  3. Click the Create button to create new empty project.
    A screenshot of a computer Description automatically generated

Adding a Device to the Project

The first step after creating a GTT project is to add a device to the project, either from a template or by defining a custom device, within which the audio processing pipeline will be implemented. GTT provides the capability for defining a device with a custom number of audio inputs, outputs, virtual cores processing audio data at custom sample rates and block lengths, etc., to build audio systems requiring precise audio data handling, ensuring that the audio system is fully customized to support the project’s specific audio processing needs.

GTT can also learn the capabilities of an AudioworX amplifier within which the audio processing pipeline is to be built by querying the target amplifier.

The following section provides instructions how to define a custom device that is compatible with the Starter Kit hardware.

Configuring a Custom Device Compatible with the AudioworX Starter Kit

A custom device can be defined by creating a device file that contains information on the physical cores available on the target amplifier, virtual cores configured for audio processing at custom sample rates and block lengths within each physical core, and groups of audio input and output channels to stream audio data to the virtual cores.

The device file can be customized to support complex audio workflows, enabling scalability, optimized resource usage, and the flexibility to handle different audio streams simultaneously.

Steps to create a custom device file:

  1. Click the + button in the “Devices” pane of the “Device Designer” tab.
  2. Select the Create Device File option on the right side of the window.
    A screenshot of a computer Description automatically generated
    Creating a Device File

This will open a “Device File Editor” where a user can define the high-level capabilities of the device.

First, a physical core must be created to describe the DSP core that the target amplifier is equipped with and provide details on its MIPS and core-type. An AudioworX supported amplifier hardware may have more than one DSP core that can be used for audio processing, each of which need to be separately added to the device file.

Steps to create the physical core in the device file editor for the Starter Kit:

  1. Right-click Physical cores and click Add Physical Core.
    A screenshot of a device software Description automatically generated
  2. Select Physical Core 0 choose the arm64-v8a option in the Core-type drop-down menu, which corresponds to the processor core type of the Raspberry Pi 5. This is an essential step to ensure compatibility of the GTT project with the Starter Kit.
    A screenshot of a computer

The Starter Kit currently only supports one Physical Core of type “arm64-v8a” despite the Raspberry Pi 5 having a quad-core processor.

Further steps on adding and defining “Virtual Cores” and detailed information on the “Device File Editor” can be found in Create Device File.

Device level Input and Output Groups can also be edited in the “Device File Editor” to suit the needs of the audio processing pipeline. Here, the user is expected to set the properties of audio input and output data streams that the physical device is capable of, including the number of channels, sample rate of the audio data and the format of the audio data.

The Starter Kit currently only supports the following configuration:

  1. Sample rate: 48,000 Hz
  2. Max. number of input channels: 2
  3. Max. number of output channels: 8
  4. Audio data format: Float

As a last step after editing the device file, click Save Device Template and save the device.flash file on local file system. This device.flash file must be sent to the Starter Kit hardware using the Starter Kit Utility to make the kit fully aware of the exact device defined in GTT.

For details on how to send the device.flash file refer to “Flash a Device File” in the “SKUtility Configuration” section of AudioworX Starter Kit Utility Tool – SKUtility.

Discovering the Device Properties from the AudioworX Starter Kit Hardware

GTT can learn the device capabilities using the “Discover Device” option in the “Add Device” menu. The discovered device type can then be used in the GTT project to design the audio processing pipeline.

Ensure that the AudioworX Amp application is running in the Raspberry Pi for GTT to be able to learn from the Starter Kit Hardware. Refer to the “SKUtility Diagnostics” section of AudioworX Starter Kit Utility Tool – SKUtility.

Steps to query the Starter Kit hardware to discover the device properties based on the device.flash file that has been already flashed on to the kit:

  1. Launch AmpSrv2 from the Desktop or from the Windows Start bar.
  2. Go to File > Options > Socket and set the host name as “raspberrypi.local” and port as “25001”.
  3. While keeping the AmpSrv2 window open, in the “Add Device” window of GTT, click the Discover Device button. This will get the device information from the Starter Kit hardware and display as a new device under the templates list (“Device-4” in the below figure).
  4. Select the device and click Ok to add the device into the GTT project.
    A screenshot of a computer Description automatically generated

    A screenshot of a computer Description automatically generated
    GTT Project with the Discovered Device

For the device capabilities to be discoverable from the Starter Kit hardware, the Starter Kit should have been previously flashed with a device.flash file.
By default, the Starter Kit is configured with a device.flash file that corresponds to the device type used in the example project. This file can be restored in case it was deleted using the command.
python3 SKUtility.py conf -rstAll
More details, refer to “Reset All Configurations to Default” under “SKUtility Configuration“.

Leveraging AudioworX Audio Features

GTT facilitates enhanced testing and experimentation with custom audio setups, providing flexibility and control over the audio workflow.

The GTT system includes “Xaf instances” and Core AOs using which developers can enhance audio processing systems, ensuring seamless integration and efficient handling of audio tasks. AudioworX provides a robust framework for manipulating audio data while taking full advantage of GTT’s advanced functionalities to deliver optimized performance and enhanced audio output.

The center pane of the “Device Designer” tab in GTT is the “Device View” where the audio processing pipeline is built. Refer to the “Importing The Example Project” for a detailed explanation of the device level abstractions in the Device View.

The “Toolbox” pane on the left-side provides a set of objects that can be dragged, dropped, and interconnected to complete the audio processing pipeline.

The following steps show how a simple audio processing pipeline can be developed:

  1. Connect the pins in physical core (block named “Device-4”) and virtual core (block named “Virtual Core 0”).
  2. Drag and drop an “Xaf Instance” from the left-side “Toolbox” pane to “Virtual Core 0” and set input and output channels as 8 and 8 (illustrative only), respectively.
  3. Now, connect the pins on the added “Xaf Instance” and “Virtual Core 0”.
    A screenshot of a computer Description automatically generated
  4. Double-click the Xaf Instance to edit/add the AOs and define a signal flow.
  5. Drag and drop the required AOs into the designer and connect them as required. The below figure shows a Gain object of 8 channels that is added to the signal flow.
    A computer screen shot of a computer Description automatically generated
  6. Once the connections have been made as required, click Save to save the signal flow design and click Go Back to return to the “Device view”.
  7. The audio processing pipeline or the signal flow can now be sent to the Starter Kit as described in the Sending the Device Configuration to the AudioworX Starter Kit and can be tuned there after as described in the Connecting to the Starter Kit for Tuning.