Basic objects category contains following audio objects.
Delay
The purpose of the Delay audio object is to time shift between the input and output audio samples. The audio object has the ability to add delays to several channels, each with a different delay setting.
However, each channel will support the maximum allowed delay set in SFD. As a result, each channel will have a buffer that is the appropriate size to handle the maximum delay. The Delay audio object can be used when a time delay is required in an audio pipeline. The objects support DelayPool functionality as an operating mode. In this mode, the sum of the individual channel delay configured will be less than or equal to the maximum delay.
Use Case: The Delay audio object can be used when a time delay is required in an audio pipeline.
Delay Object Properties
Below table describes the Delay audio object properties and functionality.
Properties | Description |
# of Channels | The number of channels is configurable in the SFD and is always equal to both, the number of input and output channels.
|
Max.delay(ms) | Specifies the maximum possible delay for each channel in the audio object. For Delay Pool (Refer below on mode details) mode Max Delay is the maximum delay that can be utilized by all channels combined.
Max delay value specified in milliseconds (ms). |
Display Name | Display the name of the Delay audio object in signal flow design. It can be changed based on the intended usage of the object. |
Object Mode | Delay object operates in one of the following three modes.
m_Mode is used to specify whether the change in the delay is Instant or uses a Crossfade or operates as DelayPool. |
Mode
Delay object operates in one of the following three modes.
Parameter | Description | Value | Data Type |
Instant | No fading – change straight to the newly requested delay value. This is the default mode. | 0 (Instant) | uint |
CrossFade | To avoid audio discontinuity when the delay value changes. | 1 (Crossfade) | uint |
DelayPool | Max Delay determines the total DelayPool size which is common for all the channels. When the delay of the individual channel is configured, the sum of delay values (of all the channels) can not exceed Max Delay. Changes in delay values are accepted by the audio object only when the sum does not exceed the Max Delay.
It does not support fading and no control inputs are added in this mode. When the sum of delay values exceeds the Max Delay and preset is applied in parameter sets of GTT, then the UI may group some delay changes into one xTP command. This may cause audio objects to accept some delay value changes and reject other delay value changes. |
2 (DelayPool) | uint |
Additional Parameters
Parameter | Description | |
Crossfading Duration in ms | Fade time, only effective when the delay is operating in Crossfade mode.
|
![]() |
Configuration Control Input(s) | Configuration control inputs (Enable/Disable).
|
![]() |
Tuning Parameters
Parameter | Details | Default Value | Range | Data type |
Delay | Delay to be applied across each channel | 0 (sec) | 0 – Max.delay (sec) | Float |
Control Interface
Parameter | Details | Default Value | Range | Data type |
Delay(OneSet) | One control input is added to set the delay value for all audio channel to the same configured value. | 0 (sec) | 0 – Max.delay (sec) | Float |
Delay(MultiSet) | One control input per channel is added to set the delay for individual channel. | 0 (sec) | 0 – Max.delay (sec) | Float |
Gain
The purpose of the Gain audio object is to provide amplitude scaling of the signal for each channel. The gain object also supports invert and mute feature.
Use Case: This object is deployed whenever a gain is required in the audio pipeline.
Gain Object Properties
Details about the Gain audio object properties and functionality.
Properties | Descriptions |
# of Channels | In the Signal Flow Designer (SFD), you can specify the maximum possible gain for the audio object. The number of channels is configurable in the SFD and is always equal to both, the number of input and output channels.
|
Display Name | Display the name of the gain audio object in signal flow design. It can be changed based on the intended usage of the object. |
Mode
There are no mode available for Gain audio objects.
Additional Parameters
There are no additional parameters available for the Gain audio object.
Tuning Parameters
The gain audio object supports in-place computation based on the core type.
The following are the paraments you can tune in to GTT.
Parameter | Description | Unit | Range |
Gain | Applied on the input channel. | dB | -128 to 20 |
Invert |
|
None | 0 or 1 |
Mute |
|
None | 0 or 1 |
Control Interface
There are no control parameters available for Gain audio object.
Level Monitor
The Level Monitor is intended to measure the level of input; the audio samples are sent to the output without modification.
Use case: This object can be deployed in Level Monitor mode whenever there is a need to measure the level of signal level and in Clip Meter mode to check if the level is causing clipping. The same input is sent as output without modification.
Level Monitor Properties
Below table describes the Level Monitor audio object properties and functionality.
Properties | Descriptions |
# of Channels | In the Signal Flow Designer (SFD), the number of control outputs is equal to the number of audio channels. Each control output writes out the channel level/clip indication value based on the MODE selected.
|
Display Name | Display the name of the Level Monitor audio object in signal flow design. It can be changed based on the intended usage of the object. |
Object Mode | During design time, the audio object channel can be configured in one of the two operation modes.
|
Mode
During design time, the audio object can be configured in one of the two operation modes.
- Level Monitor
- Clip Meter
Mode | Description |
Level Monitor | This is the default mode.
In this mode, the signal level is measured and the value is sent to the control output. |
Clip Meter | In this mode, the object computes the signal level and compares it with the threshold set through the tuning parameters. A flag is set/reset if the signal level is above/below the threshold and this flag is sent to the control output. |
Additional Parameters
There are no additional parameters available for the Level Monitor audio object.
Tuning Parameters
Under Level Monitor mode, the following are the tuning parameters available for each channel.
Parameter | Description | Range | Default | Data Type | Unit |
LEV_MODE | To select the method of computation of the input signal level
In all the above types, the computed level is always presented in dB (logarithmic scale) |
0 – RMS
1 – LINEAR 2 – PEAK |
0 | Float | NA |
DB_LEAK_PER_SEC | Amount of dB drop per second in Peak Level mode. | 1 to 60 | 30 | Float | dB |
PEAK_HOLD_TIME | Amount of time peak is held. | 0 to 1 | 0.05 | Float | second |
Under Clip Meter mode, the following is the tuning parameter available for each channel.
Parameter | Description | Range | Default | Data Type | Unit |
Threshold | The threshold value for the channel to treat a signal as being clipped. | -20 to 20 | -0.25 | Float | dB |
State Parameters
Under Level Monitor mode, the following is the state parameter available for each channel.
Parameter | Description | Range | Default | Data Type | Unit |
LEVEL_VALUE | Measured signal level for the channel | -128 to 20 | 0 | Float | dB |
Under Clip Meter mode, the following is the state parameter available for each channel.
Parameter | Description | Range | Default | Data Type | Unit |
Clip Indicator | Clip Indicator for the channel based on the tuned threshold parameter | 0 or 1 | 0 | Unsigned Long | None |
Control Interface
Under Level Monitor mode, the following is the control output available for each channel.
Parameter | Description | Range | Data Type | Unit |
Signal Level | Measured signal level for the channel | -128 to 20 | Float | dB |
Under Clip Meter mode, the following is the control output available for each channel.
Parameter | Description | Range | Data Type | Unit |
Clip Indicator | Clip Indicator per channel based on the tuned threshold parameter | 0 or 1 | Float | None |
Control Math
The Control Math audio object provides the ability to manipulate input control signals.
Control Math Properties
Below table describes the Control Math audio object properties and functionality.
Properties | Description |
Number of outputs/inputs | Enter the number of control outputs or inputs.
|
Display Name | Display the name of the control math audio object in signal flow design. It can be changed based on the intended usage of the object. |
Object Mode | Control Math audio object supports twenty-six modes of operation. This audio object can be configured in the SFD to operate in one of the following modes:
The default object mode is set to Add. |
Mode
The Control Math audio object supports the following modes.
Mode | Description |
ADD | In this mode, control inputs into the object are summed up and their sum is fed to the output of the object. |
SUBTRACT | The difference between the first control input and the summation of the remaining control inputs into this object is sent out at the output. |
MULTIPLY | Takes in input controls and writes their product to the output of the object. |
DIVIDE | Takes 2 input controls and writes the result of their division to the output. If the divisor is zero, the result is set to the maximum float value. |
MAXIMUM | Takes the input controls and writes out the maximum of the values. |
MINIMUM | Takes in input controls and writes out the minimum of the values. |
LIN2DB | Takes a linear control value as an input and outputs its logarithmic equivalent to the specific output pin. If the input is less than or equal to zero, the result is set to zero. |
DB2LIN | Takes a logarithmic control value as an input and outputs its linear equivalent to the specific output pin. |
INVERT | Reads in a control value and outputs the negative (inverse) of that value to the specific output pin. |
RECIPROCAL | Takes in a value, x, and outputs its reciprocal (1/x). If the input value is zero, the result is set to the maximum float value to the specific output pin. |
SQUARE | Takes in a value, x, and outputs its squared value to the specific output pin. |
SQUAREROOT | Takes in an input value, x, and outputs its square root. If the input is negative, the result is set to zero to the specific output pin. |
AND | Takes in multiple inputs and outputs the logical AND operation of these inputs. |
OR | Takes in multiple inputs and outputs the logical OR operation of these inputs. |
XOR | Takes in multiple inputs (x1, x2, x3, xn) and outputs the logical XOR operation (((x1 xor x2) xor x3) xor xn) of these inputs. |
NOT | Takes in an input, and outputs the NOT |
NAND | Takes in multiple inputs (x1, x2, x3, xn) and outputs the logical NAND operation (((x1 nand x2) nand x3) nand xn) of these inputs. |
NOR | Takes in multiple inputs (x1, x2, x3, xn) and outputs the logical NOR operation (((x1 nor x2) nor x3) nor xn) of these inputs. |
GREATER | Takes in 2 inputs, and and outputs true if. |
LESS | Takes in 2 inputs, and and outputs true if. |
EQUAL | Takes in multiple inputs and outputs true if all the input values are equal. |
SPLITTER | Takes in an input control and writes the output to a user-specified number of output pins. |
DUPLICATE | Takes in a user-specified number of inputs and writes each input out to 2 output pins. |
DELAY | Takes in a user setting delay (in ms) and writes out the output only after that delay time has passed. |
NONLINEARCLIP | Takes in 3 inputs, x, min, and max.
|
INDEX | It takes in multiple control inputs and outputs two control values.
In case of maximum or minimum values being the same, it returns the index of the first encounter. |
Additional Parameters
The Control Math audio object supports additional configuration which allows to enable or disable Block Control. Which can be enabled or disabled by selecting between Block Control Disabled and Block Control Enabled. The object shall support Block Control in the following operating modes:
Block Control Enabled –
- Set “Object Mode” to EQUAL / AND / OR / NOR / NAND / XOR to enable the Block control, the number of input control pins can be grouped to one input block control pin.
- Set “Object Mode” to LIN2DB / DB2LIN /INVERT / RECIPROCAL / SQUARE / SQUAREROOT to enable the Block control, the number of input and output control pins can be grouped to one input block control pin and one output block control pin respectively.
By default, the Block Control function is disabled.
Tuning Parameters
There are no tuning parameters available for the Control Math audio object.
Control Interface
There are no control parameters available for the Control Math audio object.
Native Panel
Control Math audio object does not support the native panel.
Control Grouper
The Control Grouper audio object allows to merge two or more individual controls and combining them into a single output group, and then send as one signal output group to the connected object.
Use Case: The Control Grouper audio object is useful in context of the Block Control feature. When control signals are received from controlIn AO it will be received as individual control signals. If audio object needs all control signals together then control grouper can be used to combine the control signals.
Refer block control documentation for more details.
Control Grouper Properties
Below table describes about the Control Grouper audio object properties and functionality.
Properties | Description |
# of controls in Group | Enter the number of control inputs. It is also the number of signals within the one group to control output.
The number of control group output is always 1.
|
Display Name | Display name of the Control Grouper audio object in signal flow design. It can be changed based on the intended usage of the object. |
Object Mode | The audio object supports two modes of operations.
|
Mode
Control Grouper supports two modes.
- Send When All Received (Default mode)
- Send On Apply
Mode | Description |
Send When All Received | In this mode Control Grouper AO does not send a control group output every time a control input is received. The Control Grouper AO waits till all the control inputs are received and then sends the control group output.
If the control inputs are coming at a different rate, the object sends the control group output at the rate of the slowest incoming control input. |
Send On Apply | In this mode, Control Grouper AO has an additional “Apply” input pin. When input is received on apply pin, Control Grouper AO sends the group output.
Control inputs have default values. These values are exposed as tuning parameters, these values can be modified using state variable explorer. These values are used, when one or more inputs are not received before the input on apply pin is received. |
Additional Parameters
There are no additional parameters available for Control Grouper audio object.
Tuning Parameters
There are no tuning parameters available for Control Grouper audio object.
Control Interface
There are no control parameters available for Control Grouper audio object.
Native Panel
Control Grouper audio object does not support the native panel.
Control GroupSplitter
The Control GroupSplitter audio object splits one control group input into multiple individual control outputs.
Use Case: This object can be deployed if user wants to split the block control to individual control signals which needs to be connected to different audio objects.
Control GrouperSplitter Properties
Below table describes about the Control GroupSplitter audio object properties and functionality.
Properties | Description |
# of controls in Group | Enter the number of control outputs. It is also the number of signals within the one group to control input.
The number of control group input is always 1.
The Control GroupSplitter audio object accepts a single block control at its input and splits it into a user-configurable number of single control outputs. |
Display Name | Display name of the Control GrouperSplitter audio object in signal flow design. It can be changed based on the intended usage of the object. |
Mode
There are no mode available for Control GroupSplitter audio object.
Additional parameters
There are no additional parameters available for Control GroupSplitter audio object.
Tuning Parameters
There are no tuning parameters available for Control GroupSplitter audio object.
Control Interface
The object always has N single control outputs. The number N is described via the number of elements variable in SFD. The object always has one group control input.
Native Panel
Control GroupSplitter audio object does not support native panel.
AudioToControl
The AudioToControl audio object receives audio data, it calculates the envelope based on the mode of operation (either RMS or Peak) and forwards them onto control outputs.
This object accepts N number of input audio signals and calculates the envelope and sends them into corresponding control outputs.
Below are the features of AudioToControl audio object.
- The control outputs / state values are in linear scale.
- The AO supports all sample rates and blocklengths supported by xAF. The AO only reads the audio samples for calculating RMS or peak values. The AO supports in-place computation.
AudioToControl Properties
Below table describes about the AudioToControl audio object properties and functionality.
Properties | Description |
# of Channels | Enter the number of channels. The number of control outputs are equal to number of channels. This audio object operates in RMS and Peak modes.
|
Display Name | Display name of the AudioToControl audio object in signal flow design. It can be changed based on the intended usage of the object. |
Object Mode | This audio object works in two modes.
|
Mode
- RMS: The RMS value of input audio channels are calculated and sent out in corresponding control out channel.
- Peak: The Peak value of input audio channels are calculated and sent out in corresponding control out channel.
Additional Parameters
There are no additional parameters available for AudioToControl audio object.
Tuning Parameters
It has tunable parameters attack and release time. Attack and release time are common for all channels.
Parameter | Data Format | Memory Offset | Unit | Range | Default Value |
Attack time | float | 0 | Msec | 0 to 1000 | 100 |
Release time | Float | 4 | Msec | 0 to 1000 | 10 |
The AudioToControl audio object has state parameters envelope value for all channels, rate attack and rate release. The states are read-only.
Parameter | Data Format | Memory Offset | Unit | Range | Default Value |
Channel 1 envelope | Float | 0 | None | – 9999 to 9999 | None |
Channel 2 envelope | Float | 4 | None | – 9999 to 9999 | None |
Channel N envelope | Float | (N – 1) * 4 | None | – 9999 to 9999 | None |
Control Interface
There are no control inputs. The number of control outputs is always equal to the number of audio inputs.
Native Panel
AudioToControl audio object does not support native panel.
Lookup Table (LUT)
The Lookup Table (LUT) audio object performs a table lookup to create a relationship between a control input and a control output.
For example, The LUT converts vehicle speed value to gain by manipulating the speed values using a look up table. LUT module gives out values of multiple 1-D functions (i.e. control outputs) at specific query points using ‘linear’ or ‘nearest index’ or ‘lower index’ LookUp Method.
The number of columns in the LUT is configurable by modifying the number of control outputs from the SFD. The first column of the table contains one independent vector which corresponds to the x axis of the interpolation. Each of the corresponding columns corresponds to the interpolation slopes for the outputs. The number of rows of LUT denote the number of steps in interpolation of each control output.
The LUT performs LookUp Method (floor, round, linear interpolation) between values.
- If the control input is below the minimum value in the x- axis, the LUT will output the minimum value in the table.
- If the control output is above the maximum value, the output is limited to the maximum value in the table.
The LUT supports Axis Linearity and when enabled, LUT optimizes interpolation and assumes equally spaced steps of interpolation i.e., x-axis interpolation.
- If ‘Linear Interpolation’ (LookUp Method = 1) is selected and the control input has value between two rows, then it is manipulated to create the control output vector.
- If ‘Lower Index’ (LookUp Method = 2) is selected and the control input has value between two rows, then control output is the previous known control output which is the (nearest) lower index. This follows for the other control inputs.
- If ‘Nearest Index’ (LookUp Method = 3) is selected and the control input has value between two rows, then control output is the nearest index (rounded value index). This follows for the other control inputs.
LUT Axis linearity is to be used with linearly spaced axis values.
Every time the LUT receives an input on its control pin, it will output on each control pin output (one per element).
Currently, the LUT is a series of dimensional tables of resolutions from 1-200. The number of elements corresponds to the number of columns. The table resolution on columns is configurable by modifying the first additional variable ‘Table Height’. Both the dependent and independent table values are configurable in the GTT. The x-axis (control-input) needs to be in ascending order and is configurable through the tuning tool.
Lookup Table Properties
Below table describes about the Lookup Table (LUT) audio object properties and functionality.
Properties | Description |
Number of elements | Enter the number of channels.
|
Display Name | Display name of the LUT audio object in signal flow design. It can be changed based on the intended usage of the object. |
Object Mode | LUT works in two modes.
|
Mode
LUT audio object is used to manipulate some control input to pass to one or multiple connected objects. The object operates in two modes.
Mode | Description |
LUT 2d | In the 2D mode, there is one control input, and the number of outputs varies based on the number of elements selected.
The objective of this LUT mode is to take in a control input, such as vehicle speed, and interpolate an output value, such as gain, based on values set during tuning. The output is then sent as input to other audio blocks. Primary Success Scenario
|
LUT Index | In the Index mode, there is a second control input. This control input selects which ‘set’ of tables to use. Otherwise the modes behave the same. The number of sets is configured by the additional variable ‘LUT Depth’. The maximum depth is 8.
The objective of this mode of LUT operation is to determine output given an indexed set of tables.
|
Additional Parameters
Following are additional parameters you can configure, for more details refer to Additional Parameters.
- Table Height
- UNUSED_VAR
- LUT Axis Linearity
- LUT Depth
- LookUp Method
- Block Control
- Group
Parameter | Description | |
Table Height | This parameter corresponds to the size of each table in linear steps which can be configured through an additional configuration variable.
|
![]() |
UNUSED_VAR | This parameter is used to configure old variable through an additional configuration variable which is used to control how values were ramped outside of table ranges. | ![]() |
LUT Axis Linearity | This parameter is used to set the manipulation logic for interpolation through an additional configuration variable.
Manipulation logic
|
![]() |
LUT Depth | This parameter is used to determine the depth of the table which can be configured through an additional configuration variable.
|
![]() |
LookUp Method | This parameter supports one additional configuration of LookUp Method (linear interpolation/floored index/rounded index) for values on the output axis. This decides how output is computed for an input value that is between two given input axis values.
|
![]() |
Block Control | This parameter supports additional configuration of Block Control which can be enabled or disabled by selecting between Block Control Disabled (default) and Block Control Enabled.
If it is enabled, all the control output signals are grouped into one control pin. |
![]() |
Group | The Group feature allows organizing the LUT audio objects into different groups. When the native panel of any LUT audio object is opened, all the LUT audio objects with the same group name are displayed in that native panel.
If no LUT objects are assigned to any group, native panel displays all the LUT audio objects. |
Tuning Parameters
The total number of tuning parameters depends on the LUT table height, table depth, and number of elements; which specifies the number of dependent output values and is equal to the number of columns in the LUT parameter table.
Hence, the number of elements = number of control outputs = number of LUT table columns.
In the LUT table, there is also an additional column for ‘LUT Index’ mode, which stores the values of x-axis interpolation points. As a result, the total number of elements in the LUT’s parameter memory is as follows.
Parameter | Description | Data Type | Range | Unit |
m_Params for ‘LUT 2D’ mode | Total tuning parameters = (NUM_ELEMENTS+1) * TableHeight | Float | -99999.0 to 99999.0 | None |
m_Params for ‘LUT Index’ mode | Total tuning parameters = (NUM_ELEMENTS+1) * TableHeight * TableDepth | Float | -99999.0 to 99999.0 | None |
Control Interface
There are one or two control input values for LUT based on the mode selected.
- LUT 2D: 1 float word
- LUT Index: 2 float words
The first corresponds to the value that needs to be converted to control output. The second determines which table index to use for interpolation.
Name | Description | Data Type | Range | Unit |
m_states [0] | Corresponds to the control input value that needs to be modified. | Float | -32768.0 to 32767.0 | None |
m_states [1] | Determines which table index to use for interpolation. | Float | 1.0 to 8.0 | None |
Create LUT Object
- Load xAF DLL in GTT that supports LUT.
- Open the Signal Flow Designer.
- Drag and drop LUT audio object into the Signal flow design view.
- Verify the object is created with no error messages.
The properties and compare to these defaults.
The additional variables below are not actually object variables, they only belong to the GUI object are not covered by this document. See Global Tuning Tool User Guide for further information.
AudioObject Properties | Additional Variables | ||
number of elements | 1 | Table Height | 2 |
Object Mode | LUT 2D | UNUSED_VAR | 0 |
LUT Axis Linearity | 0 | ||
LUT Depth | 1 | ||
LookUp Method | 1 | ||
Block Control | 0 |
Create LUT Object in Mode 0 (LUT 2D)
- The object should already be in mode 0 (LUT 2D).
- Verify there is one control input and one control output. Change the number of elements to three.
- Verify the object now has three control outputs.
Create LUT Object in Mode 1 (LUT Index)
- Change the object mode to LUT Index.
- Verify the object now has two control inputs.
- Change the number of elements to six.
- Verify the object now has six control outputs.
Control Multi Adder
The Control MultiAdder audio object provides the ability to manipulate input control signals. Refer description column of num elements for algorithm description.
Use Case: This object can be deployed whenever the addition of control inputs is required. Additionally, this object is used as the LUT Adder in Halosonic.
ControlMultiAdder Properties
Below table describes about the Control MultiAdder audio object audio object properties and functionality.
Properties | Description |
Number of Elements | A minimum of three control inputs into the object are summed up and their sum is fed to the control output of the object. Each time the Control Multi Adder control input is set, it calls the corresponding control output. The object has 3 control inputs for elemental addition and forwards control value into an output.
Example: If the numElements is 4, there will be 4 control outputs [y1, y2, y3 and y4] and 12 control inputs [x1 to x12]. The control outputs are computed as shown in the figure below. Maximum control inputs possible for a control multi adder instance are 255. For N elements specified from the configuration, 3N control input values would give N control output values. The number of control outputs is selected by numElements. The number of control inputs = 3 * numElements. The maximum number of control outputs is limited to 85, So the maximum number of control inputs is 85*3 = 255. |
Display Name | Display name of the Control MultiAdder audio object in signal flow design. It can be changed based on the intended usage of the object. |
Mode
There are no mode available for Control MultiAdder audio object.
Additional parameters
There are no additional parameters available for Control MultiAdder audio object.
Tuning Parameters
There are no tuning parameters available for Control MultiAdder audio object.
Control Interface
There are no control parameters available for Control MultiAdder audio object.
Native Panel
Control MultiAdder audio object does not support native panel.