Volume and Mute

The purpose of the Volume and Mute audio object is to control the volume or mute in the audio pipeline. Additionally, Volume block also amplitude scaling with ramps.
Use a custom native panel to change the Volume and Mute audio object parameters. The mode and tune type may also be selected at design time from within SFD.

The Volume and Mute audio object supports in-place computation based on the core type.

Volume and Mute Properties

Below table describes the Volume and Mute audio object properties and functionality.
A screenshot of a computer Description automatically generated

Properties Descriptions
# of Channels In SFD, the number of channels is specified, and the number of input channels is equal to the number of output channels.

  • Range: 1 to 128
  • Default: 1
Display Name Enter the display name of the audio object. It can be changed based on the intended usage of the object.
Object Mode Volume object operates in one of the three modes.

  • One Set
  • Multi Set
  • Multi Set Ramp
Additional Parameters Volume and Mute audio objects consist of the following additional parameters.

  • Ramp Tuning Mode
  • Boot State
  • Boot Level
  • Mute state on volume change

Mode

Volume object operates in one of the three modes.

Mode Description
One Set In this mode, the volume object exposes these six values.

  • Volume value
  • Mute
  • Invert
  • Ramp-Up Rate (in dB/s)
  • Ramp Down Rate (in dB/s)
  • Ramp Shape
    • Jump – Ramping between two states is non-existent – immediate transition. The ramp-up and down rates are ignored in this case.
    • Linear – Ramping between two states is linear.
    • Exponential – Ramping between two states follows an exponential curve.

These values are applied across all channels of the module. The ramping variables are only available via parameter tuning in this mode.

Multi Set In this mode, Volume, Mute, and Invert values are available per channel. One set of ramp rates and shape however is applied to all channels. The ramping variables are only available via parameter tuning.
Multi Set Ramp In this mode, Volume, Mute, Invert, Ramp Up rate, Ramp Down Rate, and Ramp shape values are all available per channel.

Additional Parameters

Volume and Mute audio objects consist of the following additional parameters.

  • Ramp Tuning Mode
  • Boot State
  • Boot Level
  • Mute state on volume change
Parameters Description
Ramp Tuning Mode Ramping is applied when a transition or change occurs and is specified in terms of rate (ms/dB) or time (ms).

  • 0 – Ramp rate in ms/dB.
  • 1 – Ramp time in ms.
A screenshot of a computer Description automatically generated
Boot State The boot-up or start-up state of the Volume AO can be specified in 0 or 1.

  • 0 – Unmuted (default)
  • 1 – Muted
A screenshot of a computer Description automatically generated
Boot Level The amplitude level of the Volume AO at boot-up or start-up time can be specified.

Range: -128 dB to + 20 dB

The default value shall be 0 dB.

A screenshot of a computer Description automatically generated
Mute state on volume change The desired state of the AO when the volume parameter is changed while the object is in Mute state is specified here.

  • 0 – Unmute on volume change (default)
  • 1 – Remain muted (apply the last set volume level after unmuting specifically)
A screenshot of a computer Description automatically generated

Tuning Parameters

Ramp Parameters: The Volume audio object exposes ramp rate/time settings that can be adjusted from GTT.

Parameters Descriptions Range Unit
Ramp Up Rate or Time Ramp up rate in ms/dB or ramp time in ms. 0 to 1000 ms/dB or ms
Ramp Down Rate or Time Ramp down rate in ms/dB or ramp time in ms. 0 to 1000 ms/dB or ms
Ramp Shape The shape of the volume will change according to once a volume or mute control is triggered.
  • Volume_Jump
  • Volume_Lin
  • Volume_Exp

Volume Parameters: The Volume object has three state parameters volume, mute, and invert (phase shift of 0 or 180) per channel.

This functionality is only triggered in the multi-set mode.

Parameters Descriptions Range Unit
Volume Volume to be applied on all input channels -128 to 20 dB
Mute Mute to be applied on all input channels 0 or 1
Invert If set to 1, all input channels will be multiplied by -1

If set to 0, all input channels will be multiplied by 1

0 or 1

Control Interface

The Volume control is triggered whenever a control message is addressed to the audio object. In One Set mode, the object supports two control inputs and two control outputs.
Control IO is not available for the other two modes.

Control Inputs: Volume and Mute object has two control inputs as follows.

Parameters Descriptions Range Unit
Volume Volume to be applied on all input channels. -128 to 20 dB
Mute Mute to be applied on all input channels
  • 0 – Un mute
  • 1 – Mute
None

Control Outputs: Volume and Mute object has two control outputs as follows.

Parameters Descriptions Range Unit
Volume Gain applied for a particular frame (blocklength of samples) -128 to 20 dB
Events It sends the control output bitmask on events — Ramp complete, Ramp started, Muted, UnMuted.

 

 

0bxxxxxxx1 – Ramp Started
0bxxxxxx1x – Ramp Completed
0bxxxxx1xx – Muted
0bxxxx1xxx – UnMuted
None

Native Panel

The Volume and Mute audio object has native panel to control the volume or mute settings in their audio pipeline. For more details, refer Volume and Mute 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.

A screenshot of a computer Description automatically generated with medium confidence

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.

  • Range: 2 to 128
  • Data type: Float
  • The default value is set to 2.
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.

  • Send When All Received (Default mode)
  • Send On Apply

Mode

Control Grouper supports two modes.

  • Send When All Received (Default mode)
  • Send On Apply

A screenshot of a computer Description automatically generated

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

The object supports configurable control inputs. When configured to “Send on Apply” mode, in addition to the existing control inputs, new control input “Apply” is added. The object has one block control output pin.

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.

  • Range: 2 to 128
  • Data type: xFloat32
  • The default value is set to 2.

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.

A screenshot of a computer Description automatically generated

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.

  • Range: 1 to 254
  • By default, the number of channels is set to 1.
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.

  • RMS
  • Peak

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 the vehicle speed values to gain by manipulating the speed values using a look up table. The 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’ or ‘exact match’ Lookup Method.

The number of columns in the LUT is configurable by modifying the number of elements 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 denotes the number of steps in the interpolation of each control output.

The LUT also supports multiple control inputs. This enables LUT to send table values on different set of outputs independently using the same LUT table. This eliminates the need for duplication of LUT objects when the user wants to send table values to different audio objects independently using same table.

The LUT performs the Lookup method (floor, round, linear interpolation, exact match) between values.

  • If the control input is below the minimum value in the x-axis and the lookup method is linear interpolation / lower index / nearest index — then the LUT will output the minimum value in the table. If the lookup method is an exact match, then there will be no output.
  • If the control output is above the maximum value in the x-axis and the lookup method is linear interpolation / lower index / nearest index — then the LUT will output the maximum value in the table. If the lookup method is an exact match, then there will be no output.

In addition, LUT supports Axis Linearity and, when enabled, LUT optimizes interpolation and assumes equally spaced steps of interpolation, i.e x-axis interpolation.

  • If the ‘Linear Interpolation’ (LookUp Method = 1) is selected and the control input has a value between two rows — then it is manipulated to create the control output vector.
  • If the ‘Lower Index’ (LookUp Method = 2) is selected and the control input has a value between two rows — then the control output is the previous known control output, which is the (nearest) lower index. This follows for the other control inputs.
  • If the ‘Nearest Index’ (LookUp Method = 3) is selected and the control input has a value between two rows — then the control output is the nearest index (rounded value index). This follows for the other control inputs.
  • If the ‘Exact Match’ (LookUp Method = 4) is selected — the object will output only when the control input matches the axis, or else there will be no output.

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 the table values on the control pin outputs (Number of Control Outputs = Number of Control Inputs * Number of Elements and cannot be more than 100 / Number of Elements. Values beyond the limit will result in clamping of the number of control inputs to the maximum allowed control inputs).

Currently, the LUT is a series of dimensional tables of resolutions from 1 to 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.

Related Topics

Lookup Table Properties

The table below describes the Lookup Table (LUT) audio object properties and functionality.

Properties Description
Number of elements Enter the number of channels.

  • Range: 1 to 254
  • The default is set to 1.
Display Name Display the name of the LUT audio object in the signal flow design. It can be changed based on the intended usage of the object.
Object Mode LUT works in two modes.

  • LUT 2d
  • LUT Index
Additional Parameters LUT has following additional parameters:

  • Table Height
  • Number of Control Inputs
  • LUT Axis Linearity
  • LUT Depth
  • Lookup Method
  • Block Control
  • Group

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, the number of control inputs is configurable, and the number of outputs varies based on the number of elements and the number of control inputs selected.

In this mode, only one LUT table is allowed.

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

  • The user will tune the object and initialize from GTT.
  • Capture input parameter.
  • Perform a lookup operation to determine the output based on the selected lookup method.
  • Output to the next object in the signal flow.
LUT Index In the Index mode, along with the control inputs, there is a 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.

In this mode, up to 8 LUT tables are allowed and can be configured in the additional config “LUT Depth”.

The objective of this mode of LUT operation is to determine the output given an indexed set of tables.

Primary Success Scenario

  • The user will tune the object and initialize from GTT.
  • Capture input parameters.
  • Determine which indexed table to use.
  • Perform a lookup operation to determine the output based on the selected lookup method.
  • Output to the next object in the signal flow.

Additional Parameters

The following are additional parameters you can configure:

  • Table Height
  • Number of Control Inputs
  • 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.

  • The default height of each table in linear steps is 2.
  • The minimum height of each table in linear steps is 1.
  • The maximum height of each table in linear steps is 200.
A screenshot of a computer Description automatically generated
Number of Control Inputs This parameter is used to configure the number of control inputs.

  • The minimum number of control inputs is 1.
  • The maximum range of control inputs is dependent on the number of elements and should not exceed (100 / Number of Elements). Values beyond the limit will result in clamping of the number of control inputs to the maximum allowed control inputs.

This enables LUT to send table values to different set of outputs independently using the same LUT table. This eliminates the need for duplication of LUT objects when the user wants to send table values to different audio objects independently using same table.

LUT Axis Linearity  This parameter is used to set the manipulation logic for interpolation through an additional configuration variable.

Manipulation logic

  • 0: The Input axis may be unevenly spaced. This allows the user to specify table resolution where needed, but requires greater effort by the object, resulting in slower execution time.
  • 1: The Object assumes evenly spaced values on the input axis in order to speed operations.

The default value of LUT Axis Linearity is 0.

LUT Depth This parameter is used to determine the depth of the table, which can be configured through an additional configuration variable.

  • The default depth of each table in linear steps is 1.
  • The minimum depth of each table in linear steps is 1.
  • The maximum depth of each table in linear steps is 8.
A screenshot of a computer Description automatically generated
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.

  • Lookup Method = 1 (Linear interpolation): It provides standard linear interpolation of output between two axis points. This is the default type.
  • Lookup Method = 2 (Lower Index): This is a Zero-hold or “previous” type of interpolation. It gives the nearest lower index, which is the floor value index.
    For a given input, the control output is the value of the output that corresponds to the most previous input.
  • Lookup Method = 3 (Nearest Index): This gives the nearest index, which is the rounded value index.
  • Lookup Method = 4 (Exact Match): This outputs the row values only when the input exactly matches the axis.
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, the control outputs are grouped into groups of the number of elements, and the number of outputs will then be equal to the number of control inputs.

A screenshot of a computer Description automatically generated
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, the 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. The number of elements is equal to the 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) * Table Height Float -99999.0 to 99999.0 None
m_Params for ‘LUT Index’ mode Total tuning parameters = (NUM_ELEMENTS + 1) * Table Height * Table Depth Float -99999.0 to 99999.0 None

Control Interface

There are one or two control input values stored in the state memory for LUT based on the mode selected.

The first corresponds to the value that needs to be converted to control output, and the second determines which table index to use for the lookup operation.

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

The number of control outputs are equal to the number of control inputs * the number of elements. When block control is enabled, the control outputs are grouped into groups of the number of elements, and the number of outputs will then be equal to the number of control inputs.

Create LUT Object

  1. Load xAF DLL in GTT that supports LUT.
  2. Open the Signal Flow Designer.
  3. Drag and drop the LUT audio object into the Signal flow design view.
  4. Verify that 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 and are not covered by this document. See Components of Signal Flow Designerfor more information.

AudioObject Properties Additional Variables
number of elements 1 Table Height 2
Object Mode LUT 2D Number of Control Inputs 1
LUT Axis Linearity 0
LUT Depth 1
Lookup Method 1
Block Control 0

Create LUT Object in Mode 0 (LUT 2D)

  1. The object should already be in mode 0 (LUT 2D).
  2. Verify that by default, there is one control input and one control output.
  3. Change the number of elements to 3 and the number of control inputs to 2.
  4. Verify that the object now has 6 control outputs.

Create LUT Object in Mode 1 (LUT Index)

  1. Change the object mode to LUT Index.
  2. Verify that the object now has 3 control inputs (2 LUT inputs and 1 Index input).
  3. Change the number of elements to 3 and the number of control inputs to 2.
  4. Verify that the object now has 6 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.

A screenshot of a computer Description automatically generated

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.
A screenshot of a computer program Description automatically generatedExample: 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

The object supports configurable control inputs based on “Number of Elements”. By default, it has three control inputs. It has one control output.

Native Panel

Control MultiAdder audio object does not support native panel.

Control Mixer

The Control Mixer audio object provides a mechanism to mix and route control signal from input to output. The mixer sums values from selected control inputs and pushes the sum to the output. Numbers of inputs and outputs are configurable via GTT. It enables N inputs to be connected to M outputs, which is configurable,e ranging from 1 to 254. If there isn’t any input signal associated with the output, the output wouldn’t be changed.

The non-weighted mode with one connected control input and output channel. Connection can be changed from the state variable window in GTT during tuning, but its impact will be visible once the input at that control pins is changed.

It takes control signals as inputs and emits control signals as outputs. Many inputs can also be connected to one output and output can be left unconnected also. It can copy any input to arbitrary number of outputs (from 0 to number_of_outputs). It means that some inputs can be copied to multiple outputs, or some inputs can be cut (not used further in the pipeline). On the other hand, one output can have at most single input connected to it. Below picture illustrates the idea.

A diagram of a mathematical equation Description automatically generated

Control Mixer Properties

Below table describes about the Control Mixer audio object properties and functionality.

A screenshot of a computer Description automatically generated

Properties Description
Display Name Display the name of the control mixer audio object in signal flow design. It can be changed based on the intended usage of the object.
Object Mode Based on the weighing factor of the control inputs to be mixed, the Control Mixer works in two different modes.

  • Non-weight mixer(default)
  • Weight mixer

Mode

The Control Mixer supports two modes.

  • Non-weight mixer(default)
  • Weight mixer

Additional Parameter

Parameter Description
Number of control input and output The max input and output in the additional configuration is 100.

Range: 1 to 254

The default number of control input and output pin is 1.

A screenshot of a computer Description automatically generated

Tuning Parameters

There are no tuning parameters available for the Control Mixer audio object.

Control Interface

The default control input output is 1 and configurable through additional configuration from 1 to 254 (max).

Native Panel

The Control Mixer object has a native panel. It is used to organized into rows and columns, determined by the number of configured control inputs and outputs. For more details, refer to the Control Mixer Panel.

Control Router

The Control Router audio object provide a mechanism to route control signal from input to output. The router allows to change path of control signal during runtime, which allows for flexibility when designing audio signal pipeline.

This object can be deployed whenever different control inputs to be routed to an object.

It can have arbitrary number of inputs and outputs ranging from 1 to 254 and enables the inputs to be cut or copied to any number of outputs.

Control Router Properties

A screenshot of a computer Description automatically generated

Properties Description
Display Name Display name of the Control Router 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 Router audio object.

Additional Parameters

Parameter Description
Number of control input and output The max input and output in additional configuration is 100.

Range: 1 to 254

The default number of control input and output pin is 1.

A screenshot of a computer Description automatically generated

Tuning Parameters

There are no tuning parameters available for Control Router audio object.

Control Interface

Default control input output is 1 and configurable through additional configuration from 1 to 254 max.