Audio

Client audio mapping enables applications that run on the Citrix Virtual Apps and Desktops or Citrix DaaS server to play sounds and record audio through a sound device that’s installed on the user device. You can configure client audio mapping using policies. For more information, see the Citrix Virtual Apps and Desktops documentation.

Support for audio recording

Starting with version 2212, the audio recording feature is enabled by default. The devices to record audio appear when a session starts.

To disable this feature, set the value for AllowAudioInput to False in the wfclient.ini file.

Note:

  • The Mic and Webcam option in the Preferences dialog is disabled by default. For information on how to enable the mic and webcam, see Preferences.

Support for multiple audio devices

Starting with Version 2112, the VdcamVersion4Support attribute in the module.ini file is renamed to AudioRedirectionV4. Starting with version 2212, the default value for AudioRedirectionV4 is set to True. As a result:

  • the PulseAudio library is used to access the audio devices and extra devices are supported.
  • more than one app can use the audio devices at a time.
  • Citrix Workspace app displays all local audio devices that are available in a session. Instead of Citrix HDX Audio, the audio devices appear with their respective device names. You can select an audio device in an app in a session. Or, you can use the default audio device during a session which is also the default audio device of the client machine. If necessary, you can change the default audio device from the system settings of the client machine. After the default audio device of the client machine is updated, the new device appears as the default audio device in the session.
  • sessions update dynamically when you plug in or remove audio devices.

If you set the value of AudioRedirectionV4 to False:

  • the ALSA library is used to access the audio devices and only single device is supported.
  • In a session, there is only one speaker and one microphone with the name “Citrix HDX Audio”, which corresponds to the default device on the client side.
  • only one app can use the Citrix HDX Audio device at a time.

To set the AudioRedirectionV4 to False, do the following:

  1. Navigate to the <ICAROOT>/config folder and open the module.ini file.
  2. Go to the [ClientAudio] section and add the following entry:

    AudioRedirectionV4=False

  3. Restart the session for the changes to take effect.

Known limitations:

By default, the AudioRedirectionV4 value is set to True. The following known limitation is present when the value of AudioRedirectionV4 is set to True:

  • If you launch a session from the command-line interface with root privilege, the PulseAudio server might refuse the connection when trying to connect to it. In this case, the audio devices might start using the ALSA library which supports single devices only.

If you set the AudioRedirectionV4 value to False, the following known limitations are present:

  • You can’t change the audio device selection in a session. The selection is set to the default audio input and output only. This limitation is resolved when you set the AudioRedirectionV4 value to True.
  • Audio device redirection isn’t supported with Bluetooth and HDMI audio devices. This limitation is resolved when you set the AudioRedirectionV4 value to True.

When the AudioRedirectionV4 value is False, the default audio device is typically the default ALSA device configured for your system. Use the following procedure to specify a different device:

  1. Choose and open a configuration file according to which users you want your changes to affect. See default settings for information about how updates to particular configuration files affect different users.
  2. Add the following option, creating the section if necessary:

    
    [ClientAudio]
    
    AudioDevice=\<device\>
    <!--NeedCopy-->
    

In this section, the device information is present in the ALSA configuration file on your operating system.

Note:

The location of this information isn’t standard across all Linux operating systems. Citrix recommends consulting your operating system documentation for more details about locating this information.

Enhancement to improve audio quality

Previously, the maximum output buffering value to play the audio smoothly was 200 ms in Citrix Workspace app. Because of this value set, 200 ms latency was added in the playback scenario. This maximum output buffering value had an impact on interactive audio applications as well.

With this enhancement, the maximum output buffering value is decreased to 50 ms in Citrix Workspace app. As a result, the user experience on the interactive audio application is improved. Also, the Round trip time (RTT) is decreased by 150 ms.

Starting with version 2207, you can select the appropriate playback threshold and pulse audio prebuffer to improve the audio quality. For this enhancement, the following parameters are added in the [ClientAudio] section of the module.ini file:

  • PlaybackDelayThreshV4 – To specify the initial level of output buffering in milliseconds. Citrix Workspace app tries to maintain this level of buffering throughout a session’s duration. The default value of the PlaybackDelayThreshV4 is 50 ms. This parameter is valid only when AudioRedirectionV4 is set to True.
  • AudioTempLatencyBoostV4 – When the audio throughput undergoes a sudden spike or isn’t enough for an unstable network, this value increases the output buffering value. This increase in the output buffering value provides smooth audio. However, the audio might be slightly delayed. The default value of AudioTempLatencyBoostV4 is set to 100 ms. This parameter is only valid when AudioRedirectionV4 is set to True and AudioLatencyControlEnabled is set to True. By default, the value of AudioLatencyControlEnabled is set to False.

Improved audio echo cancellation support

From the 2303 version and later, Citrix Workspace app supports echo cancellation. This feature is designed for real-time user cases, and it improves the user experience. The echo cancellation feature supports low quality, medium quality, and adaptive audio. Citrix recommends using adaptive audio for better performance.

By default, the echo cancellation feature is disabled. During real-time user cases, it is recommended to turn on the echo cancellation if the speaker is used instead of the headset.

To enable this feature, do the following:

  1. Navigate to the <ICAROOT>/config folder and open the module.ini file.
  2. Go to the [ClientAudio] section and update the value of the EnableEchoCancellation parameter as follows:

    EnableEchoCancellation=TRUE

Limitation:

By design, the echo cancellation feature is disabled for high quality audio. For more information on high quality audio, see the Citrix Virtual Apps and Desktops documentation.

Addition of client-side jitter buffer mechanism

Starting with version 2305, Citrix Workspace app ensures clear audio even when the network latency fluctuates. By default, this feature is enabled.

To disable this feature, navigate to the /opt/Citrix/ICAClient/config/module.ini configuration file and edit JitterBufferEnabled=FALSE.

Adaptive audio

Starting with version 2109, Citrix Workspace app supports adaptive audio. With adaptive audio, you don’t need to manually configure the audio quality policies on the VDA. Adaptive audio optimizes settings for your environment and replaces obsolete audio compression formats to provide an excellent user experience. Adaptive audio is enabled by default. For more information, see Adaptive audio.

Starting with version 2112, adaptive audio works when using User Datagram Protocol (UDP) audio delivery.

Known limitation:

  • Adaptive audio requires CPU processors that support Streaming SIMD Extensions (SSE) 4.x. Citrix Workspace app might be closed when adaptive audio is used with the CPU processor that doesn’t support SSE 4.x.

Enabling UDP audio

UDP audio can improve the quality of phone calls made over the Internet. It uses UDP instead of TCP.

Starting with Version 2112, adaptive audio works when using UDP audio delivery. Also, from this version, Citrix Workspace app supports the Datagram Transport Layer Security (DTLS) protocol for UDP audio. As a result, you can access the UDP audio through Citrix Gateway. By default, this feature is disabled.

Starting with version 2202, Citrix Workspace app supports UDP audio through Citrix Gateway.

To enable UDP audio:

  1. Navigate to the <ICAROOT>/config folder and open the module.ini file.
  2. Set the following options in the [ClientAudio] section of module.ini:
    • Set EnableUDPAudio to True. By default, this value is set to False, which disables UDP audio.
    • Specify the minimum and maximum port numbers for UDP audio traffic using UDPAudioPortLow and UDPAudioPortHigh respectively. By default, ports 16500–16509 are used.
  3. Set the following policies on the Domain Delivery Controller (DDC):
    • Set Audio over UDP to Allowed.
    • Set Audio over UDP real-time transport to Enabled.
  4. By default, adaptive audio is enabled on the VDA and supports UDP audio. If you have disabled adaptive audio, set the following policy on the Domain Delivery Controller (DDC):

    • Set Audio quality to Medium.

    As a result, the resultant audio is of a medium quality, and it can support UDP audio.

To enable UDP audio through Citrix Gateway:

  1. Navigate to the <ICAROOT>/config folder and open the module.ini file.
  2. Go to the [WFClient] section and set the following entry:

    EnableUDPThroughGateway=True

  3. Go to the [ClientAudio] section and set the following entry:

    EnableUDPAudio=True

  4. Set the following policies on the Domain Delivery Controller (DDC):
    • Set Audio over UDP to Allowed.
    • Set Audio over UDP real-time transport to Enabled.
  5. By default, adaptive audio is enabled on the VDA and supports UDP audio. If you have disabled adaptive audio, set the following policy on the Domain Delivery Controller (DDC):

    • Set Audio quality to Medium.

Loss tolerant mode for audio

Starting with the 2402 version, Citrix Workspace app supports loss tolerant mode (EDT lossy) for audio redirection. This feature improves the user experience for real-time streaming when users are connecting through networks with high latency and packet loss. By default, this feature is enabled.

You need to use VDA version 2311 or later. For more information, see Support for audio over loss-tolerant mode (Preview) in the Citrix Virtual Apps and Desktops documentation.

To disable this feature on Citrix Workspace app for Linux, set the value for EdtUnreliableAllowed to FALSE in the $ICAROOT/config/module.ini configuration file, and restart the session for the changes to take effect.

Support for Audio volume synchronization

Starting with the 2402 version, Citrix Workspace app for Linux supports synchronization of audio volume between the VDA and your audio devices. You can now tune the volume using the VDA audio volume slider and have the same volume on your device and the other way around. This feature is enabled by default.

You need to use VDA version 2308 or later. For more information, see Audio volume synchronization in the Citrix Virtual Apps and Desktops documentation.

To disable this feature on Citrix Workspace app for Linux, set the value for EnableVolumeSync to FALSE in the $ICAROOT/config/module.ini configuration file, and restart the session for the changes to take effect.

Enable Packet Loss Concealment to improve audio performance

Starting with the 2402 version, the jitter buffer mechanism is improved. Also, the Packet Loss Concealment (PLC) is added for both Speex and Adaptive audio codec. Speex is enabled when the Audio Quality policy set to medium quality. Adaptive audio codec is selected by default when both VDA and Citrix Workspace app client support Adaptive audio codec. PLC helps to reconstruct the lost data packets.

This enhancement helps to improve the packet loss tolerance and jitter tolerance and thus improves audio performance for UDP audio and loss tolerant mode (EDT lossy) for audio. By default, this feature is enabled.

To enable this feature, you also need to enable UDP audio or loss tolerant mode for audio.

To disable this feature, set the value for PacketLossConcealmentEnabled to FALSE in the $ICAROOT/config/module.ini configuration file, and restart the session for the changes to take effect.

Audio