AudioIO

The AudioIO audio object acts as the interface object between the xAF instance and other audio objects in the single flow design.

This AudioIO object can be configured to either receive audio data (AudioIn) from the framework or pass the processed audio (AudioOut) back to the framework.

  • When configured as AudioIn, this object copies the audio data from the input audio buffers of the framework to the output buffers of this audio object that is accessible to other audio objects in the pipeline.
  • When configured as AudioOut, this object copies the audio data from its input buffer to the output buffers of the xAF instance.

Use Cases: This object can be deployed whenever an audio buffer needs to be sent or received by the framework.

A computer screen shot of a computer Description automatically generated

AudioIO Properties

Below table provides the details about AudioIO audio object properties and functionality.

Properties Description
# of Audio Out

Or

# of Audio In

Enter the number of audio input or audio output. For any xAF instance, the SFD can have only one input AudioIO object and one output AudioIO object. The number of audio channels of this object shall be the same as the number of audio IO of the instance.

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

  • Audio In
  • Audio Out

Mode

The AudioIO audio object supports the following two modes:

  • Audio In: In this case, the AudioIO audio object is used to receive audio data from the xAF instance (source). The object will have only audio outputs in this mode to pass the audio to subsequent objects for processing.
  • Audio Out: In this case, the AudioIO audio object is used to send audio data back to the xAF instance (sink). The object will have only audio inputs in this mode to collect the processed audio and pass it back to the xAF instance audio buffers.

Additional Parameters

There are no additional parameters available for the AudioIO audio object.

Tuning Parameters

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

Control Interface

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

Native Panel

AudioIO audio object does not support the native panel.

ControlIn

The ControlIn audio object is deployed to connect the external control signals to the audio objects used in the signal flow. Each framework instance can have only one instance of this ControlIn object. This object serves as the consolidation point for all the control inputs for the framework instance.

Use Cases:

  • Use case 1 –Central volume control received (0 to 100% volume) from the Head unit will be forwarded to the controlIn AO. User can design the signal flow using LUT to convert the percentage volume to db unit and send it to Volume AO to manipulate the audio signals. 
  • Use case 2 – Bass and treble input from the user can be converted to Frequency, Gain, and Quality factor for Tone control audio objects to give the desired effect for the audio signal.  

ControlIn Properties

Below table provides the details about ControlIn object properties and functionality.

Properties Description
Number of Control Output The number of control output signals is configurable.

  • Range: 1 to 100
  • By default, the number of control output signals is set to 1.
Display Name Display the name of the ControlIn object in signal flow design. It can be changed based on the intended usage of the object.

Additionally, in the ControlIn object, you can configure the Control ID for each control pin.

The Control IDs can be selected from the available list or you can add the new custom Control IDs. For more details on adding and editing control ID, refer to Control IDs.

Graphical user interface Description automatically generated

Mode

There are no modes available for the ControlIn object.

Additional Parameters

There are no additional parameters available for the ControlIn object.

Tuning Parameters

There are no tuning parameters available for the ControlIn object.

Control Interface

The ControlIn object passes through the control signals received from the framework instance on the configured pins. Additionally, there are no control parameters available specifically to control the functioning of this object.

Native Panel

ControlIn object does not support the native panel.

ControlOut

The ControlOut audio object is a framework level object, that ties directly with the framework’s control system. The purpose is to take control values from an xAF instance (AudioProcessingBase) and make them available externally.

The ControlOut audio object accepts any combination of controls – single or block.

Use Case: This object can be deployed whenever the framework wants to access any control value of a signal flow. The platform may want to access these values from the framework.

ControlOut Properties

Below table provides the details about ControlOut object properties and functionality.

Properties Description
Number of Control Input The number of control Input signals is configurable.

  • Range: 1 to 225
  • By default, the number of control input signals is set to 1.
Display Name Display the name of the ControlOut object in the signal flow design. It can be changed based on the intended usage of the object.

Mode

There are no modes available for the ControlOut object.

Additional Parameters

Parameters Description
Group Sizes This is an additional parameter which is an array with a length equal to NumElements

Each value in this array is the size of the corresponding control.

Example: [1,2] would mean the first control input is a single control, but the second is a block control of size 2.

Graphical user interface, application, Teams Description automatically generated

Tuning Parameters

There are no tuning parameters available for the ControlOut object.

Control Interface

There are no control parameters available to control the functioning of this object.

Native Panel

ControlOut audio object does not support the native panel.

ParameterBiquad

This ParameterBiquad audio object computes bi-quadratic filter coefficients and calculates the output of the input audio buffers processed through the filters that users specify.

Use Case: This audio object can be deployed whenever a user wants to filter a signal based on user specified parameters.

Parameter Biquad Properties

Below table describes about object properties and functionality of ParameterBiquad audio object.

Properties Descriptions
# of Channels The object has a configurable number of channels. The number of audio inputs is always equal to the number of audio outputs. These channels are referred as subblocks. Filter has as many subblocks as number of channels and one additional subblock for Ramp characteristics.

  • Range: 1 to 64
  • By default, the number of channels is set to 1.
Number of biquads The number of elements generally describes the number of filters requested by the user.

  • For parameter and parameter one modes, this value is configurable between 1 and a 100 and is by default set to 1.
  • For Parameter one control mode, this value is not configurable and is hardcoded to 1.
Display Name Display the name of the ParameterBiquad audio object in signal flow design. It can be changed based on the intended usage of the object.
Object Mode ParameterBiquad audio object operates in one of the three modes.

  • Parameter
  • Parameter One
  • Parameter One Control Set

Mode

The ParameterBiquad audio object operates in one of three modes and ramping is applicable in all modes:

Mode Description
Parameter

(Default)

In this mode, the block receives the following filter specifications from the user for each filter in a channel.

This mode generates a set of filters per channel, so each channel has its own set of unique filters.

  • Frequency (in Hz),
  • Gain (in dB),
  • Q (Quality factor), q
  • Type of filter (lowpass, highpass, etc.)
  • Bypass mode (if set, the block doesn’t filter the incoming audio buffer)

In this mode, each channel can have its own set of coefficients and filter specifications.

Parameter One In this mode, the block receives the following filter specifications from the user for each filter in a channel:

This mode generates a set of filter coefficients for all audio channels. The only difference between this mode and the Parameter mode is that this mode generates one set of coefficients for all channels as opposed to one set per channel.

  • Frequency (in Hz),
  • Gain (in dB),
  • Q (-Quality factor), q
  • Type of filter (lowpass, highpass, etc.)
  • Bypass mode (if set, the block doesn’t filter the incoming audio buffer)

In this mode, all channels use same set of filter/filter coefficients. This block uses the above filter specifications to calculate the filter coefficients based on the type of the filter requested by the user.

The difference between Parameter mode and Parameter One mode is that Parameter One mode will apply the same set of filter coefficients to each channel whereas Parameter mode will apply different sets for different channels.

This is identical to the Parameter Mode, except, instead of presenting the variables for each filter per channel, this mode only presents a set of coefficients per filter, regardless of the number of channels.

Parameter One Control Set This mode also allows to control the cut off frequency via a control input pin.

This mode only uses one filter and applies the filter characteristics to all channels similar to Parameter One mode. It also exposes one control (accessible from the HU) variable to manipulate the cut-off frequency.

This is identical to Parameter One Mode but it has only one filter.
The Biquad object does not expose any variables for control except for the Parameter One Mode Set Control Frequency, where it exposes the cut-off frequency of the filter. When this parameter is changed then ramping is applied.

In addition to the above parameters, ParameterBiquad also exposes Ramp time configuration (both in state and tuning memory). For each channel in parameter mode and in Parameter One & Parameter One Mode Set Control Frequency single Ramp Time is exposed irrespective of number of channels.

Additional Parameters

Parameter Description
Biquad Topology Allows the user to choose the filter topology at design time.

  • Direct Form I (DFI)
  • Direct Form II (DFII)
  • Transposed Direct Form II (TDFII)

By default, it is configured for DFII.

Tune Ramping On/Off Allows user to enable or disable the ramping during tuning.

By default, ramping is disabled.

1 – Ramping Enable

0 – Ramping Disable

Irrespective of this option, ramping characteristics are always available as tuning parameters that will be used whenever changes are made through control inputs.

Tuning Parameters

This table assumes subblocks are utilized. If a user were to tune without subblocks, they would need to account for the memory offsets for subblocks.

f = Filter # (starting from beginning of subblock)

Parameter Description Data Type Unit Default Memory Offset Range
Frequency Cut off frequency of the filter float Hz 20 f * 5 * 4 + 0 10 to 20000
Gain Gain float dB 0 f * 5 * 4 + 4 -30 to 50
Quality Q factor of the filter float 0.7 f * 5 * 4 + 8 0.1 to 116
Type Type of filter: lowpass/high pass/ shelve, etc Int 0 f * 5 * 4 + 12 0 – BYPASS

15 – RESON

Bypass* Bypass on or off (0 is on) Int 0 f * 5 * 4 + 16 0 to 1

*ATTENTION: The Bypass logic is inverted. When Bypass value is set to 1, the AO applies filtering and generates the filtered output. When Bypass value is set to 0, the AO passes the input to the output. This need to be retained this way to maintain backward compatibility.

Last subblock irrespective of channels will be the ramp characteristics. Below is the memory layout for the last subblock. If m_NumChannels N,

  • In Parameter mode last subblock will be N.
    • For example, for 2 channels, subblock 0 and 1 are for the filters and subblock 2 is for ramp characteristics. When channels are changed to 3 channels, subblock 0, 1 and 2 are for the filters and subblock 3 is ramp characterics.
      • Please note that subblock 2 (which was used for ramp characteristics when number of channels were 2) used for filter when number of channels are 3.
      • Because of this, application using this AO, may not be able to retain the ramp characters when number of channels are changed.
  • In Parameter One mode and Parameter One control set mode last subblock will be 2 irrespective of number of channels

Ramp Characteristics Subblock

Last sub-block Name Type Unit Min Max Default Value Offset Description
Ch = 0 Ramp time ch0 float ms 0 500 0 ch *4 Ramp time for first channel
Ch = 1 Ramp time ch1 float ms 0 500 0 ch * 4 Ramp time for second channel
Ch = N  – 1 Ramp time ch(N-1) float ms 0 500 0 ch * 4 Ramp time for last channel

Control Interface

There are no control parameters available for Parameter Biquad audio object.

CoefficientBiquad

The CoefficientBiquad audio object accepts biquad filter coefficients via its tuning interface and then filters signals accordingly. This audio object also adjusts the input audio buffers based on the bi-quadratic filter coefficients provided into it via tuning and stores the resulting audio in the output buffers.

Use Case: This object can be deployed whenever a user wants to filter a signal based on user specified coefficients.

CoefficientBiquad Properties

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

A screenshot of a computer Description automatically generated

Properties Description
# of Channels The object has a configurable number of channels. The number of audio inputs is always equal to the number of audio outputs.

  • The maximum allowed number of channels is 64.
  • By default, the number of channels is set to 1.
Number of biquads The number of elements generally describes the number of filters requested by the user. This value is configurable between 1 and a 100 and is by default set to 1.
Display Name Display the name of the Adder 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 CoefficientBiquad audio object.

Additional Parameters

Parameters Description
Biquad Topology Allows to choose the filter topology at design time.

  • Direct Form I (DFI)
  • Direct Form II (DFII)
  • Transposed Direct Form II (TDFII)

By default, it is configured for DFII.

A screenshot of a computer Description automatically generated
Coefficient Type Allows to configurable object variable that indicates whether the filter coefficients are shared across all channels or not.

  • 0 = Coefficient (each channel has its own set of filter coefficients)

In this layout, the filter coefficients are unique per channel. The number of filters selected above would apply per channel in this layout. If the number of filters above is selected to be two, then two unique biquad sets of coefficients will be applied across each channel.

  • 1 = Coefficient one (all channels use same set of filter/filter coefficients)

This layout will share a set of filter coefficients across all channels. If the number of filters above is selected to be two, then the same two biquad sets of coefficients will be applied across all channels.

By default, it is configured for Coefficient.

A screenshot of a computer Description automatically generated

Tuning Parameters

This object does not support state and control interfaces; it only supports a tuning interface.
The five values below represent filter coefficients per biquad. Coefficient Layout exposes five values per biquad per channel, whereas Coefficient One Layout exposes one set of coefficients per biquad, and these are shared across all channels.

Parameter Description Type Unit Range Default Value Memory Offset
 b0 Biquad coefficient float None 1 f * 5 * 4 + 0
b1 Biquad coefficient float None 0 f * 5 * 4 + 4
b2 Biquad coefficient float None 0 f * 5 * 4 + 8
 – a2 Biquad coefficient float None 0 f * 5 * 4 + 12
– a2 Biquad coefficient float None 0 f * 5 * 4 + 16

b are numerator coefficients and a is denominator. The coefficients are expected to be normalized (*1/a0). And a1 and a2 are expected to be negated before being passed in.

A math equation with numbers and symbols Description automatically generated with medium confidence

Control Interface

There are no control parameters available for CoefficientBiquad audio object.

XoverBiquad

The XoverBiquad audio object computes crossover bi-quadratic filter coefficients and calculates the output of the input audio buffers processed through the filters that users specify.

Use Case: This object can be deployed whenever a user needs a crossover filter with specified parameters.

XoverBiquad Properties

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

Properties Description
# of Channels Enter number of channels. The object has a configurable number of channels as well as the number of filters. The number of audio inputs is always equal to the number of audio outputs.

  • Range: 1 to 64
  • By default, the number of channels is set to 1.

In SFD, users can set the number of channels (the number of input and output channels is the same) as well as the number of filters. Users can also select the object corresponding to the required mode.

Number of biquads The number of elements generally describes the number of filters requested by the user.

  • Range: 1 to 100
  • By default, the value is set to 1.
Display Name Display the name of the XoverBiquad 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 XoverBiquad audio object.

Additional Parameters

Parameter Description
Biquad Topology This audio object has an additional variable that allows you to pick the topology of the object at design time.

  • Direct Form I (DFI)
  • Direct Form II (DFII)
  • Transposed Direct Form II (TDFII)

By default, the object uses DFII.

Tuning Parameters

Parameter Description Tunable or Controllable Range Default
Frequency Filtering frequency to be applied Tunable 10 Hz – 20 kHz 1000 Hz
Type Filter type Tunable The memory layout is exposed in GTT as (per filter).

  • Bypass
  • High pass 1
  • High pass Butterworth 2
  • High pass Bessel 2
  • High pass Linkwitz Riley 2
  • High pass Butterworth 3
  • High pass Bessel 3
  • High pass Butterworth 4
  • High pass Bessel 4
  • Low pass Linkwitz-Riley 4
  • Low pass 1
  • Low pass Butterworth 2
  • Low pass Bessel 2
  • Low pass Linkwitz Riley 2
  • Low pass Butterworth 3
  • Low pass Bessel 3
  • Low pass Butterworth 4
  • Low pass Bessel 4
  • Low pass Linkwitz-Riley 4
BYP_XOVER
Bypass Bypass enable or disable Tunable 0 – 1 0

Control Interface

There are no control parameters available for XoverBiquad audio object.

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.

Noise Generator Panel

The Noise Generator Panel is used to change noise type and noise level. In SFD you can configure several output channels. The same noise type and level will be applied to each channel.

Noise Generator panel works only with PRO object modes “Pro-Prbs” and “Pro-Lcg”. Panel will not work in “WhiteNoise” and “PinkNoise” object modes.

Changing Noise Level

You can change the noise level by three ways:

  • Using slider button: Select the slider to adjust the value.
  • Using mouse scroll: Use mouse scroll to adjust the value.
  • Enter an exact value in the text box.

Changes will take place after hitting the “Enter” key or by moving the focus away from the text box.

Changing Noise Type

You can change the noise type by clicking on the combo-box and selecting the type.

Possible noise generator types are:

  • White Noise
  • Pink Noise

Delay Panel

The Delay panel associated with Delay audio object. The Delay panel is used for changing the delay of the signal for each channel.

A screenshot of a computer Description automatically generated with medium confidence

  • Maximum / Minimum Delay Value:  The maximum and minimum delay values are from corresponding state variable of Delay.
  • Threshold Values: The maximum and minimum threshold values are derived from the GTT in the ParameterStore. Once the threshold value is reached, the Delay value bar will change to red color.
    • Maximum threshold value: 95 %
    • Minimum threshold value: Not set
      A screenshot of a cell phone Description automatically generated with low confidence
  • Changing Units: You can switch between the milliseconds, samples, centimeters.
Milliseconds

Samples

Centimeters

  • Object Mode (Instant/CrossFade): In GTT the delay values are derived from the parameter store. Each channel’s delay value is configurable from 0 to Max Delay.
  • Object Mode (DelayPool): In GTT the delay values are derived from the parameter store. When the object mode is set to DelayPool, the “Overall delay used” shown is sum of delay values of all the channels. Sum of the delay of channels is expected not to exceed Max Delay. Changes in delay values are accepted by the audio object only when sum does not exceed Max Delay.

    You can find the overall “delay value used” at the top of the Delay panel. The value in text area changes its color depending on the percentage of the maximum overall delay value.
    • Up to 80 % of the delay pool
      A green and black rectangle with white text Description automatically generated with low confidence
    • From 80 % – 100 % of the delay pool
    • 100 % of the delay pool
      A picture containing text, font, screenshot, logo Description automatically generated
  • Step Size for delay: In the application settings, you can change the global step size. The local step size in the delay audio object is derived from the global step size specified in the application settings. When you change the value of the local step size, the global step size value is no longer used.

To change the Delay Value

You can change the delay value in four ways:

  • Using slider button: Select the slider to adjust the delay value.
  • Using mouse scroll: Hover on the respective column and use mouse scroll to adjust the delay value.
  • Using text box: Select the respective column and enter the dB value within the specified minimum and maximum range. Once you’ve entered the value, press Enter, and the slider will automatically adjust based on the input.
  • Using the increase and decrease buttons the delay calculated step value (based on max delay (ms)).