Get it on Fab

Sonant Manual

Native Production-Oriented Contextual Audio Middleware for Unreal Engine 5.5 - 5.8

Sonant replaces scattered, ad-hoc audio triggers with a deterministic, data-driven audio pipeline. By evaluating gameplay-tagged events against exact physical surface properties, authored atmosphere priorities, and real-time raycasted room enclosure estimates, Sonant manages your entire spatial soundscape while maintaining streaming safety and minimal runtime footprint.

Deterministic Context Routing

Unified Audio Subsystem for Surfaces, Atmospheres, and Acoustics

Sonant resolves physical surfaces via exact soft overrides and canonical tags, streams associated SoundBase, Niagara, and Decal assets asynchronously, and dynamically controls AudioModulation Sound Control Bus Mixes without polluting Blueprint graphs.

O(1) Cached Material Lookup
2 Hz Amortized Auto-Reverb Probe
UE 5.5-5.8 Cross-Engine Verified
Footstep / Impact Atmosphere Volume Auto-Reverb Scanner USonantSubsystem LocalPlayer Context Surface Precedence Engine Mix Ownership Control AudioComponent / Sound Niagara System FX Decal Material Spawn Control Bus Mix

2. Key Features

๐ŸŽฏ 5-Tier Surface Resolver

Precise resolution hierarchy prioritizing Soft Physical Material Overrides and Soft Material Overrides ahead of canonical EPhysicalSurface maps, keyword searches, and fallbacks.

๐Ÿ’ฅ Physics & Normalized Impacts

Data-driven impact tiers mapping normalized force/intensity to customized GameplayTag events with independent volume/pitch scaling and minimum threshold jitter filtering.

๐ŸŒŠ Listener-Space Auto Reverb

Amortized 2Hz raycast room probe sampling 6 axes from the active listener camera position, computing enclosure confidence, wall opposition, and ceiling evidence before applying reverb mixes.

๐Ÿ”๏ธ Priority Atmosphere Stack

Reference-counted atmosphere volumes that push/pop Control Bus Mixes by priority. Supports level streaming overlap adoption and graceful pawn unpossession lifecycle management.

๐Ÿš€ Spatial Utility Components

Includes USonantFoleyComponent for movement audio, USonantSplineAudioComponent for rivers/curves, and USonantProjectileTracker for pass-by closest approach audio.

โšก Streaming Safety & Retention

Async loading for soft audio, Niagara, and decal references with completed handle pruning (IsLoadingInProgress) and a 32-entry bounded retention cache for visual FX.

๐ŸŒ Server-Validated Networking

Multicast RPCs with Token Bucket rate limiting, server-side collision traces, quantized net vectors, and local client echo suppression via bOwnerAlreadyPlayed.

๐Ÿ› ๏ธ Editor Nomad Setup & Audit

Dedicated Editor tab (Window > Sonant Configuration) offering single-click config generation (DA_Sonant_Config_Default) and read-only production asset auditing.

3. Architecture & Modules

Sonant separates runtime gameplay logic, editor configuration utilities, and interactive showcase environments into three distinct engine modules to guarantee clean shipping builds:

Module Type Present in Cooked Build? Primary Responsibility
Sonant Runtime Yes Core subsystem, surface resolution, atmospheres, auto-reverb, and spatial components.
SonantEditor Editor No Nomad setup tab spawner, asset wizard, and read-only production auditor.
SonantDemo UncookedOnly No Interactive feature demo environment, showcase actors, and test character.
Shipping Note: Because SonantDemo is classified as UncookedOnly, showcase actors exist in Editor and PIE, but are stripped during cook/packaging. Your project code should only depend on the main Sonant runtime module.

4. Installation & Setup

Setting up Sonant requires enabling prerequisite engine plugins and registering your project's main configuration asset.

1 Enable Engine Plugins

Navigate to Edit > Plugins. Enable AudioModulation, Niagara, and Sonant. Restart Unreal Editor when prompted.

2 Open Sonant Setup Window

In the main editor menu bar, open Window > Sonant Configuration. This tab provides a central hub for configuring Sonant.

3 Create or Assign Default Config

Click Create or assign default config. This automatically generates a populated DA_Sonant_Config_Default asset at /Game/Sonant/ and links it to Project Settings > Plugins > Sonant Audio.

4 Run Production Audit

Click Run production audit to inspect your setup. The audit checks for valid soft asset references, unassigned surface entries, and proper collision settings without altering project files.

5. Editor Tools & Production Audit

The SonantEditor module equips audio programmers and technical sound designers with non-intrusive setup and validation tools accessible from Window > Sonant Configuration.

Sonant Configuration Window Config Assigned: /Game/Sonant/DA_Sonant_Config_Default Create / Assign Config Run Production Audit Open Config Asset

Key Production Audit Checks

6. Data Asset Reference (USonantConfig)

The USonantConfig primary data asset houses all data-driven definitions for surfaces, impacts, atmospheres, and reverb presets.

FSonantSound Structure

PropertyTypeDescription
SoundTSoftObjectPtr<USoundBase>Soft reference to SoundWave, SoundCue, or MetaSound asset.
Volumefloat (Default: 1.0)Base volume multiplier for this event.
PitchRandomizationfloat (Default: 0.05)Random pitch variation +/- centered around 1.0.
AttenuationTSoftObjectPtr<USoundAttenuation>Optional attenuation override.
ConcurrencyTSoftObjectPtr<USoundConcurrency>Optional concurrency limits override.
VFXTSoftObjectPtr<UNiagaraSystem>Optional Niagara particle system spawned at impact location.
DecalTSoftObjectPtr<UMaterialInterface>Optional decal material projected on the surface.
DecalSizeFVector (Default: 10,10,10)Extents of the projected decal volume.
DecalLifeSpanfloat (Default: 10.0s)Lifespan before the decal actor is destroyed.

USonantConfig Fields

CategoryPropertyTypeDescription
SurfacesSurfaceTypeMapTMap<EPhysicalSurface, FSonantSurfaceDef>Canonical surface enum mappings (fastest lookup).
SurfacesPhysicalMaterialOverridesTMap<TSoftObjectPtr<UPhysicalMaterial>, FSonantSurfaceDef>Exact soft physical material asset overrides.
SurfacesMaterialOverridesTMap<TSoftObjectPtr<UMaterialInterface>, FSonantSurfaceDef>Exact soft material interface overrides.
FallbackKeywordPriorityTArray<FString>Explicit keyword priority list before longest match sorting.
FallbackKeywordMapTMap<FString, FSonantSurfaceDef>Material name substring mapping.
FallbackDefaultSurfaceFSonantSurfaceDefLast-resort surface when no other rule matches.
ImpactsImpactTiersTArray<FSonantImpactTier>Array of normalized intensity thresholds and event tag mappings.
AtmospheresAtmospheresTMap<FGameplayTag, FSonantMixDef>Authored atmosphere tags mapped to Sound Control Bus Mixes & Priority.
ReverbReverbSettingsTArray<FSonantReverbDef>Array of room radius limits mapped to Reverb Bus Mixes.

7. Project Settings Reference (USonantSettings)

Configured in Project Settings > Plugins > Sonant Audio (DefaultGame.ini):

CategorySetting NameDefaultDescription
CoreMainConfigNoneSoft pointer to project's primary USonantConfig asset.
TagsDefaultFootstepTagSonant.Event.FootstepDefault tag used by PlayFootstep.
EventsMaxEventDistance15000.0Distance threshold beyond which audio events are culled.
EventsMaxVolumeMultiplier4.0Hard safety clamp on volume inputs.
OcclusionbEnableEventOcclusionfalseOpt-in line-of-sight audio occlusion trace.
OcclusionEventOcclusionTraceChannelECC_VisibilityTrace channel used for line-of-sight occlusion checks.
OcclusionOccludedVolumeMultiplier0.45Volume multiplier applied when sound origin is occluded.
VisualsMaxVisualEffectDistance5000.0Distance threshold for spawning Niagara particles.
VisualsMaxDecalDistance3000.0Distance threshold for spawning decal materials.
ImpactsMinimumImpactForce50.0Force threshold below which collisions are muted.
ImpactsImpactForceForFullIntensity5000.0Force magnitude mapped to normalized intensity 1.0.
Auto ReverbbEnableAutomaticReverbfalseOpt-in 2Hz listener-space raycast room scanner.
Auto ReverbReverbTickRate0.6sTime interval for a complete 6-axis acoustic scan.
Auto ReverbMinimumEnclosureConfidence0.75Confidence threshold required to classify space as enclosed.
NetworkbAllowClientAudioReplicationfalseOpt-in client-originated RPC audio replication.
NetworkNetworkMaxEventsPerSecond8.0Token-bucket rate limit per component for client RPCs.

8. Surface System & Precedence Ladder

Sonant evaluates hit surfaces against a strict 5-level precedence ladder. Most specific matches always take priority over general defaults:

1
Exact Soft Physical-Material Override

Matches exact UPhysicalMaterial soft object reference in PhysicalMaterialOverrides.

2
Exact Soft Material Override

Matches exact UMaterialInterface soft object reference in MaterialOverrides.

3
Canonical EPhysicalSurface Entry

Matches standard engine surface type enum in SurfaceTypeMap.

4
Keyword Map Priority & Longest Match

Evaluates explicit keyword priority, then longest substring match against material name.

5
Default Surface Fallback

Guarantees audible playback using DefaultSurface when no other rule matches.

Precedence Rationale: Soft physical-material and material overrides are deliberately evaluated ahead of the canonical map. If a physical material is left on SurfaceType_Default, placing canonical maps first would cause the setup wizard's default entry to capture it, preventing specific overrides from applying.

9. Physics & Impact Tiers

Physics impact audio is calculated using data-driven impact tiers. Each tier defines a minimum normalized intensity, target event GameplayTag, volume scaling range, and pitch scaling range.

Ignored (< Min Force) Impact.Light Tier Impact.Heavy Tier Min Force (e.g. 50) Full Force (e.g. 5000)

10. Atmosphere System & Priority Stack

USonantVolume and ASonantBSPVolume manage authored atmospheric states using a priority-based push/pop stack that controls AudioModulation Sound Control Bus Mixes.

๐Ÿ“š Priority Stack Layering

When multiple atmosphere volumes overlap, the active mix with the highest priority parameter wins. Lower priority atmospheres remain queued on the stack.

๐ŸŒŠ Streaming Overlap Adoption

USonantVolume automatically detects and adopts pawns that are already inside its bounds when a level stream finishes loading during play.

๐Ÿ‘ป Unpossession Safety

A pawn unpossessed while inside a volume retains its atmosphere state until it physically exits or the volume is destroyed, preventing abrupt audio pops.

11. Spatial Utility Components

Sonant ships with three specialized spatial audio components tailored for distinct movement and trajectory requirements:

๐Ÿƒ USonantFoleyComponent

Translates owner actor velocity or external normalized intensity into continuous movement audio. Features configurable smoothing, local-only policy, async asset preloading, and automatic silent source suspension when motionless.

ใ€ฐ๏ธ USonantSplineAudioComponent

Owns a persistent non-auto-destroy AudioComponent for river, highway, or ambient spline paths. Computes the true nearest point between the spline and active listeners, starting playback only when within hearing range.

๐Ÿš€ USonantProjectileTracker

Evaluates swept projectile movement segments against all local listeners between ticks. Triggers pass-by audio at the exact closest approach point so high-velocity projectiles never skip audible radius boundaries.

12. Audio Occlusion & Scalability

Sonant provides optional per-event line-of-sight occlusion traces using a dedicated trace channel (SonantEventOcclusion) lifted away from source surfaces. Occlusion modifies volume level only and never pitch-shifts as a low-pass substitute.

13. Multiplayer Networking & Echo Control

USonantNetworkComponent handles server-validated impact broadcasting without sending asset paths across the network.

Client (Autonomous) Dedicated Server Remote Simulated Proxy Server RPC NetMulticast Echo Suppression (bOwnerAlreadyPlayed = true) Autonomous client suppresses multicast echo, while server-originated events remain audible.

14. Listener-Space Auto Reverb

When enabled (Sonant->SetAutomaticReverbEnabled(true)), the automatic reverb estimator performs an amortized 2Hz raycast probe in listener space.

CAM Ceiling Check Wall Left Wall Right

15. Streaming Safety & Memory Model

Sonant enforces strict streaming hygiene to prevent transient asset memory leaks during continuous gameplay.

๐Ÿงน Completed Load Pruning

Streamable handles are pruned via IsLoadingInProgress(). Handles that finish loading are properly retired, returning tickable subsystem overhead to zero when idle.

๐Ÿ–ผ๏ธ 32-Entry Visual Retention Window

Niagara particle systems and decal material assets stay cached within a bounded 32-entry sliding window, keeping repeated effects instant without unbounded memory growth.

โšก Explicit Preloading

PreloadEvent(Tag) guarantees zero first-frame stutter for critical events. Call ReleasePreloadedAssets() when leaving the region or biome.

16. Scalability & Console Controls

Sonant exposes console variables for live diagnostics and platform scalability policy tuning:

Console Variable Values Description
Sonant.AutoReverb -1 | 0 | 1 -1 = Use Project Setting, 0 = Force Disable, 1 = Force Enable.
Sonant.Debug 0 | 1 Toggles visual acoustic raycast lines and room telemetry overlay.
Sonant.VisualEffects 0 | 1 Global gate controlling whether Sonant spawns Niagara systems for events.
Sonant.Decals 0 | 1 Global gate controlling whether Sonant spawns surface impact decals.

17. Production Recipes & Workflows

๐Ÿ“– Recipe 1: Integrating MetaSounds and Sound Cues

Assign your MetaSound or SoundCue asset soft reference directly to the Sound property in your USonantConfig asset under SurfaceTypeMap or KeywordMap. Sonant will load the asset asynchronously when the event is requested, or immediately if PreloadEvent() is invoked.

๐Ÿ“– Recipe 2: Setting up Niagara Surface Impact FX

In USonantConfig, set the VFX soft pointer in FSonantSound to your Niagara System (e.g. NS_GrassDust or NS_MetalSparks). Sonant automatically spawns the effect aligned with the surface impact normal, respecting MaxVisualEffectDistance (5000 units) and the Sonant.VisualEffects console variable.

๐Ÿ“– Recipe 3: Deferred Decal Material Projection

Assign a decal material to Decal in FSonantSound. Configure DecalSize (e.g., FVector(15, 15, 15)) and DecalLifeSpan (e.g., 10.0s). Sonant projects the decal onto the hit mesh, auto-destroying it after the lifespan expires while adhering to MaxDecalDistance (3000 units).

๐Ÿ“– Recipe 4: Creating AudioModulation Atmosphere Control Bus Mixes

1. Right click Content Browser > Audio > Modulation > Sound Control Bus Mix. Name it Mix_Cave.
2. In USonantConfig, map tag Sonant.Atmosphere.Cave to Mix_Cave with Priority 50.
3. Add a USonantVolume to your cave blueprint, set Atmosphere Tag to Sonant.Atmosphere.Cave. The mix activates on player entry and pops on exit.

18. C++ API Reference

PlayFootstep(const FVector& Location, const FHitResult& SurfaceHit)

Triggers footstep audio, Niagara FX, and decal materials at the target location resolved against the surface hit result.

PlaySoundAtLocation(FGameplayTag EventTag, const FVector& Location, const FHitResult& SurfaceHit, float VolumeMultiplier, float PitchMultiplier)

General-purpose tagged event router. Resolves surface properties and triggers mapped sounds with volume/pitch multipliers.

PlayImpact(const FVector& Location, float ImpactForce, const FHitResult& SurfaceHit)

Translates raw impact force into data-driven impact tiers, executing the corresponding light/heavy event.

PreloadEvent(FGameplayTag EventTag) / ReleasePreloadedAssets()

Asynchronously retains soft assets associated with an event tag to prevent hitches during gameplay.

PushAtmosphere(FGameplayTag Tag) / PopAtmosphere(FGameplayTag Tag)

Pushes or pops an authored atmospheric state onto the priority stack, updating active Control Bus Mixes.

19. Blueprint Integration Guide

Access Sonant from any Character, Animation Notify, or Weapon Blueprint:

Standard Animation Notify Integration
AnimNotify_Footstep Anim Sequence Trigger
LineTraceByChannel Foot Socket down 50cm
Get Subsystem SonantSubsystem (LocalPlayer)
Play Footstep Location & Hit Result

20. Showcase & Demo Map Layout

The SonantDemo module includes interactive showcase actors (ASonantFeatureDemo, ASonantDemoCharacter, ASonantDemoGenerator, ASonantAutoShowcase, ASonantGodRayShowcase, ASonantSpectacle) allowing complete hands-on testing without custom audio assets.

Interactive Showcase Map Layout
Surface Station Walkways

5 keyword-matched platforms (Grass, Metal, Stone, Wood, Glass) to verify real-time surface detection.

Physics Impact Range

Interactive target objects with Q/E keybindings for light (500) and heavy (3000) impulse collision testing.

Atmosphere Transition Zones

Nested trigger volumes showcasing priority-based Control Bus Mix pushing, popping, and stack fallbacks.

4-Room Reverb Proving Ground

Enclosed chambers of varying dimensions (Closet, Room, Hall, Cavern) testing automatic 2Hz acoustic estimation.

Demo Player Controls

Key Action Description
1 - 5Test Surface TypesDirectly triggers surface test audio for Grass, Metal, Stone, Wood, Glass.
Q / ELight / Heavy ImpactSpawns physics test projectiles with 500 N or 3000 N impulse.
SpaceJump / FootstepTriggers jump event and land detection trace.
TPrint TelemetryDisplays active surface, atmosphere stack, and reverb telemetry on screen.
0Toggle Auto-DemoCycles through showcase stations automatically.
9Rebuild EnvironmentDestroys and recreates the showcase layout.

21. Automation Suite & Release Gates

Sonant contains a pure C++ decision automation test suite validating all contextual logic without rendering or audio device dependencies.

// Execute pure decision tests in Unreal Editor Automation Window or CLI:
Automation RunTests Sonant.Decision

Verified Release Gates

22. Troubleshooting & Diagnostics

๐Ÿ”‡ Complete Silence on Event Call

Verify that AudioModulation is enabled in plugins, a SonantConfig asset is assigned in Project Settings, and Sonant->IsReady() returns true before firing event calls.

๐ŸŽต Incorrect Surface Sound Selected

Check if a physical material asset is assigned to the hit mesh. Soft physical-material overrides take precedence over material names and canonical maps. Clear surface cache using Sonant->InvalidateSurfaceCache() if materials were renamed during PIE.

๐ŸŒ Server Audio Inaudible to Owner Pawn

Ensure your project build includes Sonant 0.4.5+ where multicast RPCs transmit bOwnerAlreadyPlayed to differentiate predicted local client sounds from server-initiated authority events.

23. Frequently Asked Questions

Does Sonant support MetaSounds and Sound Cues?

Yes. Sonant uses soft references to standard USoundBase objects, fully supporting MetaSounds, Sound Cues, and Sound Waves.

Can Sonant be packaged for mobile platforms?

Yes. The runtime Sonant module supports Win64, Mac, Linux, Android, and iOS.

Does auto-reverb require physical volumes?

No. Auto-reverb performs real-time raycasting around the listener camera position to dynamically infer room volume without requiring physical volume placement.