FilePlayer

The FilePlayer audio object is used to read the audio content from a file and present them in real time on the output channels. Additionally, this audio object can also be used to add or mix the file content with the audio fed into the input channel buffers of this object.

A background thread is used to read the file contents in bulk and place them in the intermediate cache buffer, while in the main thread, the required audio data (of framework block length size) is copied from the intermediate cache buffer to the output channel buffers. The background thread periodically checks for the number of samples available in the cache buffer and replenishes the needed files.

Use Case:  The FilePlayer has following use case.

  • Stream wav files from local filesystem in realtime
  • Resample to target sample rate if needed
  • Option to support play speed from 0.1 to 10
  • Option to repeat play-back in loop mode indefinitely or for a fixed number of times
  • Option to insert configurable silence period in between the file play-back in loop mode
  • Shall support option to disable / enable pitch shifting (linear and polyphase)
  • Shall support mixing the file content with the output of another AO
  • Support configurable number of output channels (up to 16)
  • Support WAV / PCM Files configurable during design time. Furthermore, WAV / PCM files with all of these data types are supported.
    • 8 bit mu-law
    • 8 bit A-law
    • 16 bit integer
    • 24 bit integer
    • 32 bit float

Internally, all samples are converted to 32 bit floating point numbers. For both the 8 bit command formats, the conversion is done via a lookup table with 256 entries. This look-up table is filled based on the encoding format.

File Player Properties

Properties Descriptions
# of channels The number of channels are configurable.

  • Range: 1 to 16
  • Data type: Unsigned Short
  • The default value is set to 1.
Display Name Display the name of the FilePlayer audio object in signal flow design. It can be changed based on the intended usage of the object.
Object mode The object has two modes.

  • WAV (Default)
  • PCM
Additional Parameters
  • Pitch shifting options
  • Add file data with inputs
  • Cache Buffer size
  • File Type
  • Data format (only for PCM mode)
  • Content Sampe Rate (only for PCM mode)
  • Select Interval Type
  • Enable Loop count

Mode

FilePlayer audio object supports two different modes of operation. The audio object can read from both WAV and PCM files. 

  • WAV (Default): The WAV file contains a header that has the necessary details about the stored audio content in the file
  • PCM: the PCM file contains only the audio data and the details such as sampling rate and data format of the stored audio data must be provided separately.

Additional Parameters

The FilePlayer audio object can be configured with the following additional parameters:

Parameter Descriptions
Pitch shifting This feature is provided to increase or decrease the playing speed (sample rate at which the content is played).

  • 0 – Disabled (Default)
  • 1 – Polyphase Resampling Enabled
  • 2 – Linear Interpolation Enabled
Add file data with inputs If this feature is enabled, an equal number of input channels will be supported.

Add the content of the audio file with the output of previous AO to generate the output.

By default, the AO will have only output channels and no input channels.

  • 0 – Disabled (Default)
  • 1 – Enabled
CacheBuffer size Allocate internal memory for reading data in the background thread.

  • Range: 1024 to 16384 float words per channel with power of 2.
  • Default: 16384 float words per channel.

If the background thread is having significantly lower priority, the buffer underrun is likely to occur for lower cache sizes. In such cases, the cache buffer size shall be increased.

File Type The object supports the below files:

  • 0 – Single Multichannel file (Default)
  • 1 – Multiple Mono files
Data format (only for PCM mode)
  • 0 – Invalid
  • 1 – 8 bit A-Law companded
  • 2 – 8 bit Mu-Law companded
  • 3 – 16 bit integer
  • 4 – 24 bit integer
  • 5 – 32 bit Float (Default)
Content Sample Rate (only for PCM mode) All sample rates supported by framework shall be supported

Default sample rate is 48000 Hz.

Select Interval type The way the interval duration is to be used can be configured here.

  • 0 – Playback and silence (Default) – used in Intermittent mode
  • 1 – Silence only – used in Loop mode
  • 2 – Disable inserting silence between playback
 
Enable Loop count This parameter is used to configure if the loop count feature is to supported.

  • 0 – Disable Loop count (Default) – repeats indefinitely in loop mode
  • 1 – Enable Loop count – repeat only for the number of times specified in the loop count tuning parameter or control input

Tuning Parameters

Below table describes the tuning parameters of FilePlayer audio object.

Parameters Description Unit Range Default
Ramping Params Sub block: This subblock has ramping related tuning parameters applicable to all the channels. All the parameters in this sub-block as stored as unsigned integers.
Fade-in time Applied for control change from Stop / Pause to Play

This period needs to be less than the file playback duration.

ms 0 to 1000 100
Fade-in type Linear type only is implemented

  • 0 – Linear
  • 1 – Exponential (not implemented)
None 0 or 1 (Enum) 0
Fade-out time Applied for control change from Play to Stop / Pause

The sum of fade-out delay and fade-out time needs to be less than the file playback duration.

ms 0 to 1000 100
Fade-out type Linear type only is implemented

  • 0 – Linear
  • 1 – Exponential (not implemented)
None 0 or 1 (Enum) 0
Fade-out delay Delay period before starting fade-out process

The sum of fade-out delay and fade-out time needs to be less than the file playback duration.

ms 0 or 100 0
Quick Fade-out time Applied when play command is received during fade-out or fade-out delay phase to quickly end the fade-out phase and start playback. Also quick fade-out is applied only when this value is less than fade-out time. By default, this feature is disabled as the default value is not less than the fade-out time. Only linear ramping is applied. ms 0 to 1000 1000
Pitch ramp time This parameter is available only when pitch shifting is enabled and is applied for any change in play speed value

This period needs to be less than the file playback duration.

ms 0 to 100 0
Pitch ramp type This parameter is available only when pitch shifting is enabled. Linear type only is implemented.

0 – Linear

1 – Exponential (not implemented)

None 0 or 1 (Enum) 0
File_Config sub block: There is a separate file configuration sub block for each file. In SingleMultiChannel mode, only one sub block is present whose parameters are applicable for all the channels. In MultipleMonoFiles mode, each file has its own sub block where the parameters in each sub block is applicable for the respective mono channel.
File ID The files shall be placed in the device folder using FileController.  None 1 to 255 

Data Type: Unsigned Integer

 1
Play Setup
  • 1 – One Shot mode
  • 2 – Loop mode
  • 3 – Intermittent mode
  • 4 – Reverse One Shot
  • 3 – Reverse Loop
 None 1 to 5 (Enum)

Data Type: Unsigned Integer

 1
Start Position Start position in percentage from where file will be played. In LOOP mode, this is applicable only at the start of the play and not on every loop back  None 0 to 99.99 

Data Type: Float

 0
 Function 1 – STOP

2 – PLAY

3 – RESET (STOP and PLAY)

4 – PAUSE

 None 1 to 4 (Enum)

Data Type: Unsigned Integer

 1
Interval*

or

Silence

This parameter is available only when interval type is not disabled in the ‘Select Interval Type’ additional parameter. Based on the option chosen in the additional parameter, one of the following two parameters will be available: Interval OR Silence

Interval: When ‘Select Interval Type’ = 0.

This is applicable only in Intermittent mode. This is the interval period at which the file will be played from the beginning periodically.

Silence: When ‘Select Interval Type’ = 1.

This is applicable only in Loop mode. This is the silence period inserted after each file playback. When the parameter value is zero, the loopback is seamless.

Interval: s

Silence: ms

Interval:

  • 0.01 to 1000
  • Data Type:  Float

Silence:

  • 0 to 1000
  • Data Type:  Unsigned Int
Interval: 10

Silence: 0

Loop Count This parameter is available only when Loop count is enabled in the additional parameter. If not enabled, the file playback is repeated indefinitely.

Also, this parameter is applicable only in loop mode. If the value is zero, the file playback is repeated indefinitely; else the file playback is repeated for the given number of times. When in loop play mode, this parameter value is applied only when the AO is in stop state and not when it is in play state.

None 0 to 10000

Data Type: Unsigned Int

 

0
Play Speed** This is available only when pitch shifting is enabled. This is the play speed at which the file is played None 0.1 to 10

Data Type: Float

1

* The interval period normally shall be greater than the waveform playback duration. If the interval is less than or equal to the waveform playback duration, glitch / pop noise with a short mute period is present.

** Playback Duration = File Duration / Play Speed

State Parameters

Parameters Description Unit Range Default
Function State Sub block: This subblock has the function state parameter for each file. This parameter is used to configure and readback the present function state of the given channel(s). In SingleMultiChannel mode, only one state parameter is present that is applicable for all the channels. In MultipleMonoFiles mode, each file has its own state parameter applicable for the respective mono channel.
Function_Ch 1 – STOP

2 – PLAY

3 – RESET (STOP and PLAY)

4 – PAUSE

None 1 to 4 (Enum)

Data Type: Unsigned Integer

1
File State Sub block: This subblock has the file state parameter for each file. This parameter is used only to readback the present file state of the given file(s) and any parameter change is ignored. In SingleMultiChannel mode, only one state parameter is present for the given file. In MultipleMonoFiles mode, each file has its own state parameter.
File_State This reflects the present file status.

0 – FILEPLAYER_IDLE

1 – FILE_READY

2 – FILE_PLAY_ACTIVE

3 – FILE_STOPPED

4 – FILE_OPEN_ERROR

5 – FILE_PAUSED

None 0 to 5 (Enum)

Data Type: Unsigned Integer

0

Control Interface

Control Inputs

The FilePlayer has the following Control Inputs.

Control Input Description Size in Float Words Range
Block Control: There are FOUR control pins under this block control pin. For SingleMultiChannel mode, only one set of block control input needs to be sent. For Multiple Mono mode, for each channel a set of block controls needs to be sent separately.
Channel ID Channel ID to associate with each output channel. 1 of 4 1 to 16
File ID The files shall be sent through the FileController. 2 of 4 1 to 255
File Setup
  • 1 – One Shot mode
  • 2 – Loop mode
  • 3 – Intermittent mode (used only when ‘Select Interval type’ additional parameter is configured to 0 (Playback and Silence)
  • 4 – Reverse One Shot
  • 5 – Reverse Loop
3 of 4 1 to 5
Start Position Start position in percentage from where file will be played. 4 of 4 0 to 99.99
Function Control Pins: This control pin is used to change the function of the AO. For AOs configured in Single Multichannel mode, only one (N = 1) control input pin will be available applicable to all the channels. For AOs configured in Multiple Mono mode with N channels, there will be equal number (N) of control inputs for each file (channel).
Function 1. STOP (default on boot-up)

2. PLAY

3. RESET (STOP followed by PLAY)

4. PAUSE

N 1 to 4
Interval / Silence Control Pins: Only one of them – Interval or Silence pin – can be made available based on the configuration in the additional parameter – ‘Select Interval Type’. For AOs configured in Single Multichannel mode, only one (N = 1) control input pin will be available applicable to all the channels. For AOs configured in Multiple Mono mode with N channels, there will be equal number (N) of control inputs for each file (channel).

Interval control pin is applicable only in INTERMITTENT play mode and is used to change the interval period of the playback. 

Silence control pin is applicable only in LOOP play mode and is used to change the required silence period after each file playback. 

Interval This is the interval period at which the file will be played from the beginning periodically. N 0.01 to 1000 s
Silence This is the silence period inserted in between consecutive file playback. N 0 to 1000 ms
Loop Count Pins: These pins are available only when loop count feature is enabled in the additional configuration parameter. If is is not configured, the file playback is repeated indefinitely.

For AOs configured in Single Multichannel mode, only one (N = 1) control input pin will be available applicable to all the channels. For AOs configured in Multiple Mono mode with N channels, there will be equal number (N) of control inputs for each file (channel).

Loop count This is the number of times the file playback is to be repeated. If the value is zero, the playback is repeated indefinitely. When in loop play mode, this control value is applied only when the AO is in stop state and not when it is in play state. N 0 to 10000
Pitch Control Pins: This control pin(s) is/are available only when pitch shifting is enabled and is used to change the play speed of waveform playback. For AOs configured in Single Multichannel mode, only one (N = 1) control input pin will be available that is applicable to all the channels. For AOs configured in Multiple Mono mode with N channels, there will be equal number (N) of control inputs for each file (channel).
Play Speed This is the play speed at which the file is played.

The control input is in terms of play speed.

N 0.1 to 10

Control Outputs

The FilePlayer has the following Control Outputs.

Control Output Description Size in Float Words Range
There are two control output pins – either two single control pins or two block control pins.

When the AO is configured in Single Multichannel mode, two single control (N = 1) pins are available for the control outputs listed below. 

When the AO is configured in Multiple Mono mode with N channels, two block control (N) pins are available for the control outputs listed below.

Play Position During active playback, for every audio interrupt, the AO outputs the play position in terms of percentage covered in the file. N 0 to 99.99
File State

 

Whenever there is a change in the file status, the AO outputs the file state:

0 – FILEPLAYER_IDLE

1 – FILE_READY

2 – FILE_PLAY_ACTIVE

3 – FILE_STOPPED

4 – FILE_OPEN_ERROR

5 – FILE_PAUSED

 N 0 to 5 

In Single Multichannel file mode, mono file also can be played.

In Multiple Mono file mode, all the files need to be mono files. In WAV mode, if the file is seen having more than 1 channel, that file will be ignored. In PCM mode, the file will be taken as a mono file and played leading to improper output.

In Multiple Mono file mode, all the mono files need to be in the same data format and sampling rate. If files with different data format are used, the data format of the last configured file will be considered and the same will be applied to all other mono files leading to improper output.

The FilePlayer audio object can be configured with multiple channels. The channel count of the object and the number of channels in the wav file may differ. Error message is returned if extra channels are present in the audio file. If extra channels are configured in the object, those extra channels are filled with silence.

In cases with low intermediate cache buffer size, the background thread need to run frequently to replenish the data available in the cache buffer.  If distortion is observed with low cache size, buffer underrun could be the cause and background thread shall be moved to higher priority or the cache buffer size shall be increased.

It is recommended to configure the sound card block length to less than the cache buffer size under Sound Card Configuration while using IVP.

The actual memory required for the supporting the intermediate cache buffer size will be slightly more than the size specified in the additional parameters as it is required to store extra data (of polyphase filter order) for supporting filtering. The memory latency table shall be referred for exact memory requirements.

In Single Multichannel file, let the number of files present in the file content be M and the number of channels configured for the object be N.

In WAV mode:
– If M = N, all the N channels will be played with the file content.
– If M < N, first M channels buffers will be populated with the file content and the remaining N-M channels will be muted. – If M > N, none of the channels will be played and all channels will be muted.

In PCM mode:
– If M = N, all the N channels will be played properly with the file content.

If M != N, the file will be taken as a N channel file and played leading to improper output.

Native Panel

FilePlayer audio object does not support native panel.

FaderBalance

The primary purpose of the Fader Balancer audio object is to optimize the audio quality within the vehicle’s cabin by adjusting the sound distribution. This audio object allows to identify the “sweet spot” of the sound by moving in the x and y directions. 

The Fader Balance object has only one operating mode and has three additional configuration parameters – Speaker Groups, Number of Steps, and Block Control. Using these additional parameters, you can configure the setup during design time.

Each audio channel may belong to one or two speaker groups as set in the additional variable. Fader speaker group has the following speaker types:

  • CENTER
  • SIDE
  • BASS
  • FRONT
  • REAR

Balance speaker group has the following speaker types:

  • CENTER
  • LEFT
  • RIGHT

Each speaker type in each speaker group has its own gain table.

The output samples are generated by multiplying the input samples with the composite gain value that is a product of the gain levels of the Balance and Fader gain tables assigned to this channel and as pointed by the control inputs – Control_Balance and Control_Fader. The composite gain value is morphed to avoid pops.

Channel configuration (assignment to speaker types of the selected speaker groups), morphing time, and the gain level of each step are configurable through the xTP interface. Basically, mixing run-time tuning (add cfg params) and design-time tuning (add cfg params). GTT is used for configuration in general, and xTP is the protocol used to deliver tuning data.

Fader and Balance positions are provided through control inputs.

Fader Balance is ported from the Summit version with the following differences:

  • The option for 4 modes is not supported. This shall be handled with the preset files. The number of control inputs is brought down to 2 due to this change.
  • Stand-alone Fader AO and Balance AO can be achieved by configuring the additional parameters in the SFD.
  • The step count is made as an additional variable instead of using the “Number of Elements” field.
  • The channel configuration is done using a drop-down menu to select only one speaker type in each speaker group. This prevents the selection of multiple speaker types by mistake.

Use Case: Using this method, you can optimize the sound loudness on the left or back of the cabin.

Fader Balance Properties

Below table describes the Fader Balance audio object properties and functionality.

Properties Descriptions
# of Channels The number of audio channels it can process is configurable in the SFD and ranges from 1 to 255. The number of audio inputs is always equal to the number of audio outputs.

  • Range: 1 to 225
  • The default number of channels is set to 8.
Display Name Display the name of the Fader Balance 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 Fader Balancer.

Additional Parameters

Parameters Description
Speaker Groups Speaker Groups can be set to one of the following three options:

  • Fader and Balance speakers (0) – Default
  • Balance speakers only (1)
  • Fader speakers only (2)
Number of Steps The “Number of Steps” is a common variable that controls the number of gain levels that the user can operate.

To control the gain level of fader and balance speakers the value shall be odd, and this value is common for balance and fader speaker groups. The number of steps needs to be an odd number and shall range from 3 to 65 with the default value at 31.

The xAF data order is set as “xAF_ODD” to communicate to the GTT through DDF to prevent entering even numbers by the user.

Block Control Block Control Disabled (0) – Default

Block Control Enabled (1)

Tuning Parameters

The following tuning parameters are available for the Fader Balancer audio object.

Parameter Name Description Type Unit Default value
MorphingTime Morphing time. The range is from 0 ms (no morphing) to 100 ms.

Morphing time follows time constant and the morphing time is denoted as M. Following is the percentage of change achieved:
 – After M: 63%
– After 2M: 86%
 – After 3M: 95%
 – After 4M: 98%
 – After 5M: 99%
Hence the morphing time can be configured accordingly.

float ms 0.01
Channel # Assignment This parameter assigns a particular audio channel to one or none of the speaker types in each group. The following pair of speaker-type assignments is available for each channel.

  • Balance Speaker Types: CENTER, LEFT, RIGHT and None
  • Fader Speaker Types: CENTER, SIDE, BASS, FRONT, REAR and None
ULong

ULong

BAL_CENTER

FAD_CENTER

BalanceCenterTable Balance table for center speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB 0
BalanceLeftTable Balance table for left speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB 0 dB for the first (NUMBER_OF_STEPS+1)/2 steps, next are linearly decreased with equal step in dB scale to -128 dB.
BalanceRightTable Balance table for right speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB Start from -128 dB and are linearly increased with equal step in dB scale to 0dB to (NUMBER_OF_STEPS-1)/2 step, next their value is 0 dB.
FaderCenterTable Fader table for center speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB 0
FaderSideTable Fader table for side speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB 0
FaderBassTable Fader table for bass speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB 0
FaderFrontTable Fader table for front speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB 0 dB for the first (NUMBER_OF_STEPS+1)/2 steps, next are linearly decreased with equal step in dB scale to -128 dB.
FaderRearTable Fader table for rear speaker group. The gain value for each step is tunable.

Range: -128 to 0 dB

float dB Start from -128 dB and are linearly increased with equal steps in dB scale to 0dB to (NUMBER_OF_STEPS-1)/2 step, next their value is 0 dB.

Control Interface

The following two control parameters are available for the Fader Balancer audio object.

  • Balance – To set the Balance knob position
  • Fader – To set the Fader knob position

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

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 one control output.
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 one control output as follows:

Parameters Descriptions Range Unit
Volume Gain applied for a particular frame (blocklength of samples) -128 to 20 dB

Limiter

The purpose of Limiter audio object is to control the output level of the audio. 

This AO supports in-place computation based on the core type.

Use Case: The Limiter AO can be used wherever there is a necessity to limit the signal level to be below a safe threshold level. A typical example is to protect speakers from unsafe signal levels.

Limiter Properties

Below table describes about the Limiter audio object properties and functionality.

Properties Description
# of Channels The number of audio channels it can process is configurable in the SFD and each channel has its own set of specifications.

  • Range: 1 to 250
  • Data type: Signed Short
  • The default value is set to 1.
Display Name Display name of the Limiter audio object in signal flow design. It can be changed based on the intended usage of the object.

Mode

The Limiter audio object supports following three modes:

  • No Control: No option for changing threshold value through control input. This is the default mode.
  • One Set: One control input whose value is applied to change the threshold of all the channels
  • Multi Set: Individual control input for each channel to change the threshold. If the number of channels exceeds 1, the control inputs are grouped as one block control input.

Additional Parameters

Parameter Description
Max Lookahead Max Lookahead value is used to define the maximum lookahead time. During tuning from GTT, you can vary the lookahead time from 0 to the value set in the additional parameter.

The memory requirement largely depends on the lookahead time, and this feature helps you to define their optimal maximum lookahead time based on the memory availability.

This can be configured during design time.

  • Range: 0 to 0.15 seconds
  • Data type: Float
  • The default value is set to 0.0015.

Size of the lookahead delay buffer (in float words) = round (sampleRate * Max Lookahead)

For a sample rate of 48000 and maximum lookahead of 0.15 s, the required buffer size is 7200 float Words. Hence this variable is made configurable to enable the user to choose optimal maximum lookahead value based on the available memory.

A screenshot of a computer Description automatically generated
Threshold Type This additional variable is used only in One Set and Multi Set modes.

Under this modes, the AO will be having control input(s) and through this additional variable the user configures whether to use the control input value as absolute threshold or offset threshold.

This option can be configured during design time.

  • Range: 0 to 1
    • 0 = Offset Threshold; the control input value would be applied on top of the tuning threshold value.
    • 1 = Absolute Threshold; the tuning threshold value would be ignored and the control input value would be applied.
  • Data type: Char

The default value is 0.

Attack Phase

The Limiter operates in two modes during the attack phase when the input signal level is higher than the desired threshold.

  • Fixed attenuation of 10 dB within the given attack time if the difference between the input signal level and the threshold is much higher. This phase is used initially to bring down the Limiter output quickly closer to the threshold.
  • Adaptive attenuation if the threshold is slightly lower than the input signal level. This is deployed towards the end of attack phase for fine tuning the output level to match the threshold.

Hence if the threshold is less than the input signal by less than or equal to 10 dB, then within the given attack time the Limiter output is restricted to the threshold level ± 1 dB.

If the threshold is much lower than the input signal level (say 30 dB), the difference is first brought down to less than 20 dB within the attack time; the difference is further reduced to less than 10 dB within twice the attack time; finally the output matches the threshold ± 5% within thrice the attack time.

Release Phase

The release time is the time taken by the Limiter output to follow the input signal level from the time the input signal level drops below the threshold. During this phase, the Limiter output follows exponential (time constant) growth to reach the input level.

Accordingly the output level will be as given below during this phase (If the release time is denoted as R, and the difference between the output level at the start of release phase and the input signal level is P dB):

  • After R sec            : 63% of P dB
  • After 2R sec          : 86% of P dB
  • After 3R sec          : 95% of P dB

Tuning Parameters

The tuning parameters are limited to safe range such that Limiter audio object shall not produces NaNs.

In GTT, the limiter exposes the following parameters for each channel of the limiter:

Parameters Description Type Range Default
Gain Controls the upper bound of gain that the limiter applies on weak signals. Float 0 to 30 0 dB
Threshold Controls where the limiter begins to activate. Float -30 to 0 0 dB
Attack Time Controls the limiter’s attack time for each channel. Float 0.1 to 20 1 ms
Release Time Controls the limiter’s release/hold time for each channel. Float 1 to 2000 150 ms
Hold Time Controls the hold counter. Float 0 to 10 10 ms
Hold Threshold Controls where the limiter enters hold or release. Float -1 to 0 0 dB
Look Ahead Time Look Ahead buffer for controlling the overshoots. Float 0 to Max Lookahead 0.0015 s
Bypass Flag to bypass the Limiter operation for the particular channel. Unsigned Long 0 to 1

0 – Bypass Disable

1 – Bypass Enable

0

State Parameters

Parameters Description Type Unit Range Default
Attenuation The attenuation value for each channel indicates the amount of the gain reduction (attenuation) applied when the Limiter is active.

This value will not be updated while the limiter is in the ‘Bypass’ state.

Float dB 0 to 60 0 dB
Effective Threshold
Indicates the actual threshold value applied – for each channel. Float dB -60 to 0 0 dB

When the control input of the Limiter AO is configured as Absolute Threshold, the last applied setting will be used internally; which means the tuning parameter change will overwrite the control input and vice versa.

Control Interface

The Control audio object does not have any control output in any modes. However, the AO has control input(s) in One Set and Multi Set modes.

  • In One Set mode, the object has one control input whose value is applicable for all channels.
  • In Multi Set mode, the number of control inputs is same as the number of channels – each channel having a dedicated control input. These control inputs in Multi Set mode are grouped as one Block Control input when the number of control inputs exceeds 1.

For further info on the Limiter audio object and it’s functional behaviour, please also refer to Limiter User Guide Supplement.

Router

The Router audio object routes any of the input channel to any output channel without changing samples of the source. Additionally, you can route the same input channel to multiple output channels.

In the SFD, you can select the values that they prefer for “# Input channels” and “# Output channels”. These values can be distinct.

Use Case: This object can be deployed whenever each output channel is routed to any one of the input channels.

Router Properties

Below table describes about the Router audio object properties and functionality.

A screenshot of a computer Description automatically generated

Properties Description
# of Audio In Enter the number of input channels.

  • Range: 1 to 255
  • Data type: Unsigned short
  • The default value is set to 1.
# of Audio Out Enter the number of output channels.

  • Range: 1 to 255
  • Data type: Unsigned short
  • The default value is set to 1.
Display Name Display the name of the Router audio object in signal flow design. It can be changed based on the intended usage of the object.
Object Mode Router object operates in one of the following two modes.

  • Jump
  • Ramping

Mode

Router object supports two different modes of operation. After selecting the router object in GTT, one can configure the modes as described below.

By default, the router object is configured to operate in the Jump mode.

  • Jump: In this mode, the object performs the tuning or routing without any ramping and switches the input to output routing between two calc calls. This might cause clicks and pops if no fading or mute stage is performed on an instance or core level.
  • Ramping: In this mode, the object will perform a ramping while changing the input to output routing. In addition to the routing parameters this mode supports a tuning of the ramp time in the range of 0 to 5 seconds.

Presently, the object supports only linear ramping. The ramping type is not configurable.

If the router is configured with six input and six output channels, the tuning parameters will be displayed in GTT as shown below.

Ein Bild, das Text enthält. Automatisch generierte Beschreibung

Additional Parameters

There are no additional parameters available for Router audio object.

Tuning Parameters

Below table describes the tuning parameters of Router audio object.

Parameter Description Unit Data Type Default Range
Router Each output channel has this parameter to configure the Input channel number to route to the particular output channel.

This parameter is available in both modes.

None ULong 1 1 to Number of Audio Inputs
RampTime Ramping time

This parameter is available only in Ramping mode

Seconds Float 0.5 0 to 5

Control Interface

There are no control parameters available for Router audio object.

Splitter

The Splitter audio object copies the samples of one input channel to multiple output channels. 

Use Case: This object can be deployed whenever an input channel to an object is required to be replicated to multiple channels at the output.

Splitter Properties

Below table describes about the Splitter audio object properties and functionality.

   

Properties Description
# of Audio Out

# of Audio In

In Splitter, the number of input and output channels depends on the selection of object mode.

  # of Audio Out: When the object mode set as “Splitter”, you can configure number of the output channel in the “# of Audio Out” field.
The number of the input channel is always 1 and the output channel can set between below range.

  • Range: 2 to 225
  • The default value is set to 2.

# of Audio Out is the default configuration.

 – # of Audio In: When the object mode set as “MultiInput”, you can configure number of the input channel in the “# of Audio In” field as per below range.

  • Range: 1 to 127
  • The default value is set to 1.
Display Name Display the name of the Splitter audio object in signal flow design. It can be changed based on the intended usage of the object.
Object Mode  The audio object channel can be configured in one of the two operation modes.

  • Splitter
  • MultiInput

Mode

Splitter object operates in one of the two modes.

  • Splitter
  • MultiInput

Mode Description
Splitter The purpose of Splitter mode is to copy the input audio data N times to the output buffers. In this mode you can set the number of output channels and number of input channel is always fixed to one. 
The object replicates the single input channel to all output channels of the object.

This is the default mode.

The additional parameter “Number of Outputs per Input channel” is not supported in Splitter mode.

MultiInput The purpose of the MultiInput mode is to use one instance of the audio object instead of instantiating it N times if you have N channels. 
The number of output channels equals the number of audio inputs multiplied by the value entered in the additional configuration variable “Number of Outputs per Input channel”. The maximum number of audio outputs is determined by the number of inputs, as number of output channel per object cannot exceed 255. It splits multiple signals the same number of times. The number of copies of each input channel produced at the output is determined by the value set in the additional configuration variable.In this mode, the splitter takes in input 1 and sends it to output 1 and 2. Input 2 is sent to output 3 and 4.

Additional Parameters

Parameters Description
Number of Outputs per Input channel The object has an additional configuration variable “Number of Outputs per Input channel”  for MultiInput mode. It denotes the number of copies of each input channel.
It is configurable between 2 to (255/Number of Audio Inputs).
For example, if number of audio inputs are set to 25. Then the “Number of Outputs per Input channel” value is configurable  between 2 to 10 as the maximum number of output channels supported cannot exceed 255. Default : 2

Tuning Parameters

There are no tuning parameters available for the Splitter audio object.

Control Interface

There are no control parameters available for the Splitter audio object.

Native Panel

Splitter audio object does not support a 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 ranging from 1 to 254. If there isn’t any input signal associated with output, the output wouldn’t be changed.

The non-weighted mode with one connected control input output channel. Connection can be changed from state variable window in GTT during tuning, but its impact will be visible once 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 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 in two modes.

  • Non-weight mixer(default)
  • Weight mixer

Additional Parameter

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 Mixer audio object.

Control Interface

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

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.