CriWare Unreal Engine
Plug-ins for CriWare solutions.
Loading...
Searching...
No Matches
Audio Link

AudioLink is an API that connects Unreal Audio Engine to external software, allowing Audio to be passed from Unreal to Atom sound renderers. By using hardware abstraction, AudioLink bypasses the need for direct hardware access and provides the strengths of both Unreal Audio Engine and CriWare ADX Audio engine.

This section will assume a basic understanding of the Unreal AudioLink system and will focus on the Atom specific information.

How to Enable/Disable Atom AudioLink

In the Atom Core for Unreal Settings, you can choose to enable/disable AudioLink support. This will load/unload the appropriate modules when the editor is reloaded.

audio link activation

Settings

The default Atom AudioLink Settings can be found in the project settings, under 'Plugins > Atom AudioLink'. This is used in cases where the property has not been set, so it is unnecessary to pass it every time you create an AudioLink. You can create multiple Atom AudioLink Settings assets allowing you to easily route different sounds to different events allowing for greater customization. These settings are:

  • Destination Route - Where to send the audio link sound.
    • As Sound Source - Route sound to an interal Atom sound source.
    • Direct to Bus - Route sound to selected Atom bus. (Not implemented yet.)
  • Destination Rack/Bus/Stage - If destination Route is set to 'Direct to Bus' it selects the bus and the stage (Pre/Post Effect) where the AudioLink sound will be routed.
  • Should Clear Buffer on Receipt - If this is set, the buffer will be cleared after it's read, so it's not rendered by Unreal. Only applies if running both renderers at once. Disable this if you want to use the audio data from Unreal Engine.
  • Producer to Consumer Buffer Ratio - This is the ratio of producer to consumer buffer size, a size too large can lead to latency, but too small can lead to buffer underruns. Typically, you should use a size at a 2:1 or higher ratio of the consumer's bitrate.
  • Initial Silence Fill Ratio - Ratio of initial buffer to fill with silence ahead of consumption. Adjusting this can resolve starvation at the cost of added latency.
audio link settings

What Can AudioLink Transmit

Atom supports AudioLink through three link types:

  • Source - eg. MetaSounds, Sound Cues, and Sound Waves.
  • Submixes.
  • AudioLink Component - ie. AtomAudioLink.

Source

MetaSounds, Sound Cues, and Sound Waves are classed as 'Sources', to play them through AudioLink you can use the Attenuation Settings or the Submix.

Attenuation Settings

In the source/component Details panel you will find the option to individually override or assign Attenuation settings:

  • Allow Spatialization - Overrides spatialization enablement in either the attenuation asset or on this audio component's attenuation settings override.
  • Override Attenuation - This breaks down the Attenuation settings in the details panel to override individual components.
  • Attenuation Settings - Here you can specify a settings asset that uses all the Attenuation settings you have already set.
Meta Sound Audio Cue Audio Component

It is recommended to disable the Attenuation (Spatialization) option as Atom needs to handle the spatialization.

To send specific sounds to Atom, use the settings under Attenuation (AudioLink):

  • Enable Send to AudioLink - Enables/Disables AudioLink on all sources using this Attenuation.
  • AudioLink Settings Override - A predefined AudioLink Settings asset that can be used across multiple Attenuation settings, if this is empty then the default settings are used.

\warning If you want to override the Attenuation Settings, either through an asset or in the details panel, but not use the Enable Send to AudioLink (ie. you want it to route through a specified submix instead) you need to make sure that the Attenuation (Spatialization) is disabled.

Submix

You can set the Send to Audio Link flag and the Audio Link Settings property in the submix's Details panel, under 'Audio Link'.

audiolink submix

AudioLink Component

AudioLink Component support is included through the Atom AudioLink Component, but is often unnecessary as sources are componentless by design, highly optimized for scale, and provide engine-level support.

audiolink component

The AudioLink Component is then controlled through the API:

  • PlayLink
  • SetLinkSound
  • StopLink
  • IsLinkPlaying

\warning In UE5.2 and UE5.3, two events will spawn when using the AtomAudioLinkComponent: one for the component (intended) and one for the sound source (not intended). This appears to be an engine bug.

Workaround:
Create a new AtomAudioLinkSettings asset and leave the Link Event empty, then assign this to the sound source (through the Attenuation Settings).

Troubleshooting

  • Use the console command 'log LogAtomAudioLink All' to output (a lot) more detailed information to log.
  • Ensure you enable the 'Send to AudioLink' flag on the source or submix.
  • Be careful with pairing a source and submix containing the same signal chain, as that can cause data duplication and result in loud and undesirable audio stacking.
  • Use the Atom Statistic panel to debug active sounds in real-time and see currently used Audio links.