# Unreal Engine Native Audio

The Native Audio path lets Excited Waves Acoustics drive reverb and early reflections entirely through Unreal Engine's built-in audio mixer – no middleware or third-party DSP required.

> **Beta.** This integration is in beta. The API may change before stable release.&#x20;

### Requirements

* Unreal Engine 5.6.1 / 5.7.4
* Windows (Win64)
* <mark style="color:$warning;">Trial license key</mark> – request at [contact@excitedwaves.com](/excitedwaves-docs/excited-waves-acoustics.md)

### Installation

1. Download the trial project with plugins included:&#x20;
   1. <https://github.com/ExcitedWaves/EWAcousticsNativeUE_Trial> (5.6.1)
   2. or <https://github.com/ExcitedWaves/EWAcousticsNativeUE_Trial/tree/ue-5.7> (5.7.4)
2. Copy [plugins](https://github.com/ExcitedWaves/EWAcousticsNativeUE_Trial/tree/master/Plugins) to your project:
   1. `ExcitedWavesAcoustics` into `Plugins/` – core detection, required for everything.
   2. `ExcitedWavesAcousticsNativeAudio` into `Plugins/` – UE Submix adapter and ER DSP.
   3. (Optional) Copy `ExcitedWavesAcousticsChaos` into `Plugins/` – destruction support.
3. After copying plugins and restarting, verify that all installed Excited Waves plugins are enabled in **Edit > Plugins**:

   <div align="left"><figure><img src="/files/ViqqEqKuEKCAWwbsLij3" alt=""><figcaption></figcaption></figure></div>
4. Enter License Key. Open **Project Settings > Plugins > Excited Waves** and paste your trial key:

   <div align="left"><figure><img src="/files/TSzJGdR9t3m3kOynFs5R" alt=""><figcaption></figcaption></figure></div>

### First Setup

#### 1. Add the Detector Component

1. Attach `UAcousticsDetectorComponent` to any actor (typically a character, audio listener, or sound emitter). In the Details panel: Add Component, search for `Acoustics Detector`.

   <div align="left"><figure><img src="/files/r5B0X9ocU3GZQTUsKuOd" alt=""><figcaption></figcaption></figure></div>
2. Set **Is Listener = true** on the player's detector. It must be only one Listener detector on the level.

   <div align="left"><figure><img src="/files/ZIxmB3VvkHEQwxDtGVOP" alt=""><figcaption></figcaption></figure></div>

#### 2. Play

The detector automatically begins scanning. Enable debug visualization to see the system working:

Go to **Project Settings > Plugins > Excited Waves Acoustics > Debug** and enable **Show Debug Rays**, **Show Hit Points**, **Show Results, Show Detector Positions:**

<figure><img src="/files/N7WfFKoNnNwxv3nnKdIh" alt=""><figcaption></figcaption></figure>

Press Play and move around the level. You should see colored rays, hit spheres on surfaces, and an on-screen text overlay with acoustic metrics.

<div align="left"><figure><img src="/files/KofEtskmuzM1bWQLxsmi" alt=""><figcaption></figcaption></figure></div>

#### 3. Create Submix Assets

Create UE Sound Submix assets for each distance bin and absorption range. A typical setup uses three absorptions level, but you can add so many as you need.

| Absorption Range      | Close Submix      | Mid Submix      | Far Submix      | Outdoor Submix      |
| --------------------- | ----------------- | --------------- | --------------- | ------------------- |
| Reflective (0–0.33)   | Reflective\_Close | Reflective\_Mid | Reflective\_Far | Reflective\_Outdoor |
| Neutral (0.33–0.66)   | Neutral\_Close    | Neutral\_Mid    | Neutral\_Far    | Neutral\_Outdoor    |
| Absorptive (0.66–1.0) | Absorptive\_Close | Absorptive\_Mid | Absorptive\_Far | Absorptive\_Outdoor |

Each submix should contain a reverb effect appropriate for its distance and absorption characteristics (shorter decay for Close/Absorptive, longer for Far/Reflective).

**To create a submix:** Content Browser > Add > Audio > Mix > Sound Submix. Add a reverb effect to each submix's effect chain. See examples [in the trial project](https://github.com/ExcitedWaves/EWAcousticsNativeUE_Trial/tree/master/Content/EWDemo/Audio/Reverbs) – or copy the assets (including IRs) to you project.

<figure><img src="/files/MWVWbEU3YiPpymARC8Wo" alt=""><figcaption></figcaption></figure>

Assign created Submixes in settings (**Project Settings > Plugins > Excited Waves Acoustics Native Audio > Late Reverbs > Reverb Presets**):

<div align="left"><figure><img src="/files/HoLgU6n0oSyqm5B4EZEx" alt=""><figcaption></figcaption></figure></div>

#### 4. Early Reflections Submix

Create a dedicated submix for early reflections output. The ER DSP is injected **automatically** by the plugin – you only need to create the submix and assign it in settings (**Project Settings > Plugins > Excited Waves Acoustics Native Audio > Early Reflections > General > ER Output Submix**). If unset, ER output falls back to the Master Submix.

<div align="left"><figure><img src="/files/R47vC7xNT7Ngv9kBOvkb" alt=""><figcaption></figcaption></figure></div>

<figure><img src="/files/xkE6VJy7eVYRlB6BjaxR" alt=""><figcaption></figcaption></figure>

***

### Project Settings

Settings at **Project Settings > Plugins > Excited Waves Acoustics Native Audio**.

#### Reverb Presets

Assign the submixes you created:

<table><thead><tr><th>Setting</th><th width="124.3333740234375">Default</th><th>Description</th></tr></thead><tbody><tr><td>Reverb Presets</td><td><em>(empty)</em></td><td>Array of absorption-indexed presets. Each defines MaxAbsorption and four submix references. Sort by MaxAbsorption ascending.</td></tr><tr><td>Preset Crossfade Duration</td><td>0.3 s</td><td>Crossfade time between presets when a switch occurs. 0 = instant.</td></tr></tbody></table>

**Per-Preset (FNativeReverbPreset)**

<table><thead><tr><th>Setting</th><th width="127.666748046875">Default</th><th>Description</th></tr></thead><tbody><tr><td>Max Absorption</td><td>1.0</td><td>Upper absorption boundary. First entry with absorption ≤ MaxAbsorption is used.</td></tr><tr><td>Close Reverb Submix</td><td><em>(none)</em></td><td>Submix for close-distance reverb.</td></tr><tr><td>Mid Reverb Submix</td><td><em>(none)</em></td><td>Submix for mid-distance reverb.</td></tr><tr><td>Far Reverb Submix</td><td><em>(none)</em></td><td>Submix for far-distance reverb.</td></tr><tr><td>Outdoor Reverb Submix</td><td><em>(none)</em></td><td>Submix for outdoor/open space reverb.</td></tr><tr><td>Send Volume Offset (dB)</td><td>0.0</td><td>Volume offset (-24 to +24 dB) applied to all send levels for this preset.</td></tr></tbody></table>

#### Late Reverbs – Levels

<table><thead><tr><th>Setting</th><th width="147.666748046875">Default</th><th>Description</th></tr></thead><tbody><tr><td>Global Send Volume Offset</td><td>8.0 dB</td><td>Makeup gain applied once per late-reverb submix after emitter bins, cross-room, and preset row gain are combined.</td></tr><tr><td>Clamp Send Levels</td><td>false</td><td>When enabled, each bin send is clamped to 0–1 after scaling.</td></tr></tbody></table>

#### Late Reverbs – Send Updates

<table><thead><tr><th>Setting</th><th width="142.333251953125">Default</th><th>Description</th></tr></thead><tbody><tr><td>Acoustics Sends Update Interval</td><td>0.01 s</td><td>Minimum time between late reverb send updates.</td></tr><tr><td>Submix Send Min Level Delta</td><td>0.0</td><td>Skip SetSubmixSend when the linear send level changes by less than this. 0 applies every update.</td></tr></tbody></table>

#### Early Reflections – General

<table><thead><tr><th>Setting</th><th width="170.3333740234375">Default</th><th>Description</th></tr></thead><tbody><tr><td>Enable Early Reflections</td><td>true</td><td>Master toggle for early reflections.</td></tr><tr><td>Early Reflection Send Level</td><td>0.9</td><td>Submix send amount from the audio component into the ER submix (0–2).</td></tr><tr><td>ER Output Submix</td><td><em>(none)</em></td><td>Submix the ER bus is connected to. If unset, falls back to Master Submix.</td></tr></tbody></table>

#### Early Reflections – Effect

<table><thead><tr><th>Setting</th><th width="168.3333740234375">Default</th><th>Description</th></tr></thead><tbody><tr><td>Max Taps</td><td>4</td><td>How many image sources are mixed (strongest first). Max: 8.</td></tr><tr><td>Max Delay Ms</td><td>120 ms</td><td>Maximum delay line length. Increase for larger spaces.</td></tr><tr><td>Speed Of Sound Cm Per Sec</td><td>34,300</td><td>Speed of sound in cm/s. Converts geometric path to delay.</td></tr><tr><td>Lowpass Min Cutoff Hz</td><td>800</td><td>Low-pass cutoff at full absorption (most damped).</td></tr><tr><td>Lowpass Max Cutoff Hz</td><td>16,000</td><td>Low-pass cutoff at zero absorption (bright reflections).</td></tr></tbody></table>

#### Core Settings

Detection, distance bins, frame limiting, LOD, cross-room blending, and surface absorption are configured in **Project Settings > Plugins > Excited Waves Acoustics**. See Configuration Reference for every setting or [read more](#core-settings). Default core settings should be fine for the most cases to get started.

#### Chaos Destruction

If the Chaos plugin is installed, its settings are at **Project Settings > Plugins > Excited Waves Acoustics Chaos**. The plugin automatically discovers destructible Geometry Collections and triggers re-scans.

***

### How Reverb Sends Work

1. Core plugin produces per-bin amounts (Close/Mid/Far/Outdoor) and absorption values (weighted mean for compensation, RMS for preset selection).
2. Native Audio plugin selects the appropriate reverb presets based on absorption.
3. Bin amounts become send levels on UE Submixes.
4. Absorption compensation, cross-room blending, and direct-to-reverb ratio modulate sends further.
5. Per-bin submix sends are clamped and rate-limited by update interval settings.

### How Early Reflections Work

1. Core plugin calculates image source positions from ray hits.
2. Plugin passes positions to `USubmixEffectExcitedWavesEarlyReflectionsPreset`, a custom delay-line DSP submix effect.
3. DSP renders reflections with per-tap delay, LPF, panning, and crossfade logic.
4. Taps are ordered by strength, limited to Max Taps.

***

### Known Limitations

* API may change before stable release
* Win64 only

### Feedback

Bug reports and API requests: [contact@excitedwaves.com](/excitedwaves-docs/excited-waves-acoustics.md)

***

Website: [excitedwaves.com](https://excitedwaves.com) · Contact: <contact@excitedwaves.com>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://excitedwaves.gitbook.io/excitedwaves-docs/unreal-engine-native-audio.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
