Create a Signal Flow

Before creating a signal flow, it is necessary to complete the following configurations.

  • Make sure you need to add a device to the project. For more information on how to create a project and add device to the project, refer Create a New Project.
  • Once you have created the signal flow, the next steps involves tuning and analyzing the signal flow. To analyze the signal flow according to your specific requirements, you need to configure the analyzer settings. The analysis can be performed using the IVP RTA window. For more details on IVP RTA settings, refer Real Time Analyzer User Guide.

If you are running a virtual device select WIN32(legacy) or WIN64 (IVP and VST3).

Not matching core types will cause issues on your device (virtual and real).

Follow the below steps to create a signal flow design:

  1. On the Device View, drag and drop the Xaf Instance from the toolbox to the virtual core

    This action opens the Configure I/O Channels message box.
  2. Enter the Input channel and Output channel value and click OK. The audio objects inside the signal flow designer are filtered based on Data Format of the core.
  3. Select the Xaf Instance and configure the core object properties; Sample Rate and Block Length.
    • Sample Rate: This sample rate will be applied to all the audio blocks in the signal flow
    • Block Length: It is required internally by the xAF framework.
      Graphical user interface Description automatically generated
  4. Once you configured the Xaf Instance core object properties, click Save.
  5. Double-click on the Xaf Instance to open the Signal Flow Designer window.
  6. On the Signal Flow Designer, go to the Toolbox section, expand Interface, and drag AudioIO audio object to the design canvas. Similarly add another AudioIO audio object to the design canvas.

    When adding an xAF instance to a device that is already online, this AudioIO can be added. Thus, this step is only necessary if these two AudioIO objects are absent.
    A screenshot of a computer Description automatically generated

  7. Select one of the AudioIO audio object and set the Object Mode parameter to Audio In. Similarly, select another AudioIO audio object and set the Object Mode parameter to Audio Out.
    Graphical user interface, application Description automatically generated
  8. Expand Basic and drag Gain audio object to the Signal Flow view. You can use any of the audio object, for example Gain audio object is used.
  9. Select the Gain audio object and set # of channels parameter to 2.

    The number of channels determines the number of connectors that will be assigned to the AO. In GTT, you can allocate as many channels as required for your device.
    Graphical user interface, application Description automatically generated

  10. Press CTL+A or hold the CTRL key, to select an individual audio object from the Signal Flow view, and click Connect Blocks to connect all the audio object.
    Or
    You can connect the pin manually by establishing a connection between each pin of the AO.
    Graphical user interface, application Description automatically generated
    Now you have an input and output object, as well as an object to tune gain, invert, and mute parameters for each channel of signal flow designer.
  11. Click Save to save the signal flow design and click Go Back.
  12. Click on Send Signal Flow.

    Before performing the “Send Signal Flow” operation, make sure that the IVP is properly configured.

    A pop-up message will ask you to reboot device.

  13. Switch to IVP RTA tab and click Reboot.
  14. Switch to Device Designer tab and click on Connect Device to connect to device.
  15. Device synchronization dialogue box will appear, enable the desired synchronization option, and click Send.
    A screenshot of a computer error message Description automatically generated with low confidence

If AmpSrv is unable to connect, close it and retry.

Now you can perform tuning on the IVP RTA.
A message “Signal flow successfully submittedwill be displayed. The Signal Flow will be sent to the virtual amplifier.
Using the Export option, you can export the signal flow design details. One .mcd file will be generated for master control data, and one .SFD file will be generated per instance per core.

Additional Audio Block Configuration Parameters

Audio Objects may require a different set of configuration properties than the default ones like # of channels, audio inputs, audio outputs, and number of elements. In such cases, it is possible to customize the configuration properties of the AO to better match the specific requirements of the device.

The LUT audio object serves as a suitable example; you need to define the number of rows and columns in the table. To facilitate this requirement, additional configuration parameters are added in both GTT and xAF.

Theoretically, an audio block can have any number of additional configuration parameters. These parameter definitions are obtained from the xAF library in conjunction with the parent block definition. The parameter definition consists of parameter order, name, and value, which are currently represented as floats. There are plans to enhance parameter definitions in the future to accommodate multiple parameter types.

When a metadata is available, the additional parameters are displayed as shown below.

On the Audio Object Property view, click on the Configure. The system will open an additional parameters window, where you can provide additional parameters. These additional parameters are of the same data type which is provided as part of parameters definition.

After making the necessary modifications, click the Apply and the system will implement the designated supplementary parameters.

Dynamic Additional Parameters

This feature is to change the size of additional parameters based on IO modifications. This feature is available for selected Audio objects which have “isAddVarUpdateRequired” flag set in their static metadata.

Harman Audio Library Service

The Harman Audio Library Service (HAL) service is a wrapper around the xAFVirtualAmp library. It’s been created mainly because GTT is a 64-bit application, while xAFVirtualAmp is a 32-bit library, hence it is not possible to launch both binaries in the address space of the same process. In addition, GTT also supports 64-bit xAFVirtualAmp from “R Release”.

Internally, the HAL service is implemented as a WCF service hosted in a Windows service. It communicates with GTT via named pipes.

The Harman Audio Library Service exposes the following xAF API to GTT.

  • getAudioToolboxBuffer: Returns the AudioToolbox.xml file as a string. AudioToolbox.xml contains definitions of audio blocks known to a particular version of the xAFVirtualAmp library.
  • getIoObjectInformation: This method accepts audio block configuration parameters and returns the IO layout of the block (# audio ins, # audio outs, # control ins and # of control outs).
  • getTuningInformationBuffer: Returns a device description snippet for an audio block. Iterative invocation of that method for each audio block across all framework instances produces a device description file.

After a successful installation of GTT, the HAL service should be automatically initiated by default.

In case the service is not operational or has been deactivated for any reason, the GTT will notify you of such situations through error messages.

To activate the HAL services:

  1. Open GTT project window, click on Service Monitor. This opens service monitor window.
  2. On the Service Monitor window, click Refresh for Harman Audio Library.

Support for Multiple Framework Instances

The xAF framework is designed to support a single core and a single instance running on that core as its default setting. However, it is possible to create a personalized xAFVirtualAmp version that supports multiple framework instances to be distributed over several cores.

Currently, the audio routing between cores at the device level and between instances at the core level is hardcoded. In the future, it will be possible to provide the routing configuration using GTT.

For now, the tool makes it possible to build signal flows consisting of multiple cores and framework instances, as well as to generate device descriptions for such setups. However, when creating a multi-core, multi-instance arrangement, it is necessary to have prior knowledge of the audio routing hardcoded in the xAFVirtualAmp library and adhere to its limitations.

Once the design is done, you can send a complete configuration (control configuration for a device and signal flow configurations for each framework instance) to a real or virtual device.

After completing the design, it is possible to send a complete configuration (including control configuration for a device and signal flow configurations for each framework instance) to a physical or virtual device.

To send configuration to a physical or virtual device:

  1. On the Device Designer view, click on Send Signal Flow.

Feedback Loop in Signal Flow

In order to achieve complex reverb processing implementation, you can provide feedback of one audio object to another audio object, this can be achieved by adding feedback connections in signal flow. You can add one or more feedback connections in a signal flow.

On adding any audio connection, if loop detected in signal flow, following prompt will appear. On clicking “Yes”, the connection will be changed as feedback connection. On clicking “No”, the connection will be added as a normal connection.

An existing audio connection can be changed to feedback connection using context menu option “Set as Feedback Connection”.

An existing feedback connection can be changed to normal connection using context menu option “Set as Normal Connection”.

The keyboard shortcut “Ctrl+Alt+F” can be used to set a normal connection as feedback connection or vice versa. You can select one or more connections and use this keyboard shortcut.

The feedback connection will be shown as dashed yellow line as below,

You can mark any audio connection as feedback connection. But remember that, the feedback connections will be ignored/skipped during execution order calculation.

If any loop connection detected on save or if a legacy signal flow already has a loop connection, the designer will indicate this and an error with the compiler will be reported. In order to save the signal flow, you must first remove any existing loops or set the loop connections as feedback connections.

Feedback connections are supported inside CAO and on connections of CAO.

Self-loop is not allowed on an audio object.

The execution order of audio objects will not be changed on adding new feedback connections in a signal flow. But changing an existing connection to a feedback connection can affect execution order because the feedback connections will be ignored during execution order calculation.

InPlaceComputation will be disabled on audio objects with feedback loop connection. This includes audio objects which are source and target of feedback connection.

Separate stream indexes will be allocated for feedback connections. Same index will be allocated for input and output streams of feedback connection. These indexes when in use, will not be reused for other connection.

There is no restriction to add loops in control connections.

Overview Of Signal Flow Designer

The Signal Flow Designer allows you to create a visual representation of a signal flow. The process of creating a signal flow involves dragging and dropping audio objects onto a virtual canvas, connecting them using virtual connections, and adjusting the settings for each component. Once the signal flow is defined, it can then be sent to the amplifier or other devices in the signal chain to process the audio and control signals according to the defined flow.

Additionally, you can create and modify signal flows in real time, which is particularly useful in live tuning. Live tuning can be dynamic and unpredictable, and signal flow designers can help audio professionals to make real-time changes to the signal chain to ensure the best possible sound quality and performance.

Relative Topics

Components of Signal Flow Designer

The Signal Flow Designer enables you to create and modify signal flows architecture. It includes a variety of components that you can use to design a signal flow. The components in the Signal Flow Designer are represented as blocks and you can connect them using virtual connections to create a signal path. You can also adjust various parameters of each component to customize the signal flow according to your needs.

Signal Flow Designer includes the following components:

  1. Toolbox
  2. Design Operations
  3. Properties View
  4. Audio Object Operations

Toolbox

The toolbox is a library of audio objects. In SFD, you can create compound audio objects by combining multiple audio objects into a signal audio object. These compound audio objects can be saved and reused in the same and other signal flow designs. Additionally, you can import compound audio objects into SFD using the import option.

Use the search option to locate the audio object in the toolbox. To find the desired audio object, enter the first three or more characters in the toolbox’s search bar.

The audio objects displayed in the toolbox are based on the default device audio library version.

Regardless of the audio Library, two objects are always available in the Toolbox by default. The objects “Frame” and “Textbox” can be found in the Shapes category in the toolbox. These are not audio objects, and they are not considered when tuning or sending the signal flow to the device.

The frame object is used to highlight certain blocks in the signal flow designer. Whereas the Textbox object is used to provide additional information to the user of the Signal Flow.

For more information about various audio objects, refer to the Audio Object Description Guide.

Design Operations

This section contains several operations you can perform in a signal flow design.

Following are operations you can perform in a signal flow design.

  • Reset a Processing state(s): In signal flow designer you can reset all audio objects processing state to ‘Normal’ by using the “Reset” button.
  • Connect Audio Blocks: When designing a signal flow for processing audio signals, there are different types of audio objects that are used to create the audio signal. To create a meaningful audio signal, you need to connect these blocks in a signal flow. This concept is called routing.
    Routing is the process of directing an audio signal from one block to another. In a typical signal flow, various audio objects are connected from input to output using virtual connections to route the audio signal from one block to another.
    You can connect all audio objects with a single click using the “Connect Block” option. Later, you can modify the connections as per your requirements.
  • Saving Signal Flow Designer: When working with a signal flow designer, it’s important to save your work regularly to prevent data loss. This ensures that you can return to your project at a later time. Click on the “Save” option to save the changes in the signal flow design.
  • Extracting Audio Object: Extract can be performed only when valid audio objects are selected. Currently, the GTT does not support FIR MIMO, EOC, RNC, Audio IO, Control IN, or Compound Audio Object extraction.

     Extract will be enabled only if Signal Flow is saved.

    For extracting audio objects, you need to select one or more audio objects from an existing signal flow and extract audio objects into a Compound Audio Object. The application will replace the extracted audio objects with the Compound Audio Object in the signal flow.

    For more details about compound audio objects, refer to Compound Audio Objectt.

  • Search Audio Object: Using the search option you can locate specific audio objects in the signal flow designer. The located audio object is highlighted in yellow color.
    You can use the “<<” and “>>” buttons to move between the highlighted audio objects. When you click the “<<” or “>>” search buttons, the highlighted audio object will be repositioned to the center of the screen.
  • Redo/Undo: The redo and undo option allow you to redo or undo the changes that you have made to your audio project.
    Press Ctrl+Z to perform Undo operatoion and Press Ctrl+Y to perform Redo operation.
  • Complier Report: The compiler report displays a warning or error message entry item for each invalid audio object.A picture containing graphical user interface Description automatically generated

The following are the few factors responsible for invalid signal flow design:

  • If the audio object tuning version differs from the existing audio object type in the Device Associated Audio Library.
  • Due to the addition or modification of parameters of an audio object, it might mismatch with the signal flow design state.

To resolve the issue, you need to upgrade the audio object, refer to Upgrade Audio Object for more details.

Properties View

You can view the properties of an audio object used in the signal flow design through the Properties view. This allows you to configure the properties of the audio object to suit your requirements. The properties can be viewed by selecting a specific audio object.

Audio Object Modes

Some audio blocks support multiple configuration modes. For instance, the AudioIO block can function as both an audio input and an audio output block. Similarly, the Biquads block can operate either as a parameters-based or coefficients-based Biquad.

In previous versions of the Signal Flow Designer, each mode of an audio block was displayed as a separate audio block. However, in the latest version of the tool, it is assumed that every block can support at least one configuration mode.

For those blocks that support multiple modes, an extra drop-down field is now shown on the properties view. By selecting an appropriate value from the drop-down, you can modify the mode.
Graphical user interface, application Description automatically generated

Control Configuration

In the latest version of GTT, the Signal Flow Designer supports control routing from the control hub (Master Control) to xAF framework instances.

The ControlIn block is used to configure a control flow for each instance. By designating certain control signals to the output pins of a ControlIn block within a given instance, you can decide which control signals that instance will receive. To make the process easier, a new tab is added to the property configuration.

Using that tab, you can choose from a wide list of available control signals and associate them with control outputs of the ControIln block. Re-ordering of the items in the control signals grid is done via the Up and Down buttons.
You can also define your own custom control signals (Control IDs) and assign them to control pins.
Graphical user interface, text, application Description automatically generated

When a custom Control ID is defined for a device, it can be accessed in the Control In tab of any ControlIn audio object, along with the predefined Control IDs.
In terms of tuning, the custom control signals are treated as part of the Master Class object, just like the predefined control signals.

Mapping Custom Panel

Open any audio object property view, enable the “Is Custom Panel” option, and select the appropriate custom panel from the drop-down list.
For details about creating a custom panel in GTT, refer to the link Create a Custom Panel in GTT.
Graphical user interface, application Description automatically generated

Audio Object Operations

You can access these operations by right-clicking on any audio object and selecting them from the context menu. Below are the options available in the context menu.

A screenshot of a phone Description automatically generated with medium confidence

Operations in Signal Flow Designer

In the Signal Flow Designer window, you perform the following operations.

About Installation Guide

This guide provides instructions for installing the Global Tuning Tool. It also covers system requirements and license activation and renewal procedures.

Terms and Abbreviations

List of technical terms and abbreviations.

  • xAF: Extendable Audio Framework
  • GTT: Global Tuning Tool
  • SFD: Signal Flow Designer
  • BAO: Basic Audio Object

Reference Document

Visit below topics to get more information about AudioworX and various modules. Additionally, you can refer to the following relevant documentation for more detailed information on the Global Tuning Tool.

For technical queries or support, email us at  AudioworXSupport@harman.com.

For new feature or change requests, email us at AudioworXSupport@harman.com.

System Requirements

Your computer must meet the minimum technical specifications outlined below to run and use the Global Tuning Tool.

Table 1: Global Tuning Tool System Requirements

Component Minimum Requirement Recommended Requirement
Processor Intel® Core – i3 processor (4.3GHz) Intel® Core -i5 processor (1.7GHz or above)
Operating System Windows 10 (64-bit support)
Memory 4 GB RAM 8 GB RAM or above
Hard disk 20 GB of available hard disk space; additional space is required for installation 50 GB or above
Display Resolution 800 x 600 display 1920 x 1080 display
Graphics
  • Driver Version – Supported Intel, GPU version greater than 30.0.100.x.
  • 1.5 GB of GPU memory
  • Driver Version – Supported Intel, GPU version greater than 31.0.101.3959.
  • 4 GB of GPU memory for 4k displays and greater
Browser The current version of Microsoft Edge, Internet Explorer, Chrome, or Firefox.

Internet connection is necessary for GTT registration, license activation, membership validation, and access to online services.

Currently, the Global Tuning Tool is not supported on macOS systems.