Mixing & Effects

Named volume channels built on custom miniaudio nodes, environmental influence with priority stacking, and the component-authored mix effect layer.

Base — ships in GS_Audio.

Mixing has two parts, and it is worth separating them from the start.

Volume channels are the grouping layer — voice, environment, combat SFX — each with its own level, feeding Master. This is the layer your options menu drives.

Mix effects are the processing layer — filters, EQ, delay, reverb, character effects — authored as named chains on components and routed by name. This is the free tier’s authoring surface for the DSP palette, and it is not a reduced one: it exposes the same 22 processors that Audio Pro exposes as graph nodes.

For usage guides and setup examples, see The Basics: GS_Audio.

 

Contents


Volume Channels

GS_MixingBus

A custom miniaudio node that mixes its inputs, applies a level, and optionally runs an effects chain.

FieldValue
TypeId{26E5BA8D-33E0-42E4-BBC0-6A3B2C46F52E}

The Audio Manager owns a named set of these. GetMixingChannelNames enumerates them and ChangeChannelVolume sets a level.

This is the Volume Channel stage of the canonical signal chain: grouped sound types feeding Master. It is orthogonal to spatialization — a voice line, a footstep and a spell all get positional audio, and all three route to different channels.

Channels are the natural attachment point for the options system’s audio sliders, which is exactly what the shipped audio apply targets do.


Environmental Influence

An entity in the world can temporarily impose an effect set on channels — walk into a cave and everything gains reverb; walk out and it lifts.

MethodParametersDescription
ApplyAudioEffectInfluenceinfluencer, effectsPush an effect set onto channels on behalf of an influencing entity.
RemoveAudioEffectInfluenceinfluencerRemove that entity’s contribution.

Influences stack by priority and are keyed by the entity that applied them, so removal is unambiguous even when several influences overlap. Two overlapping zones resolve by priority rather than by whichever fired last.


Mix Effects

The processing layer. A MixEffectComponent holds an ordered chain of effects, registers it under a name, and feeds its output somewhere — another chain, or a volume channel. Sources route in by naming that chain as their mixing channel.

Twenty-two effect types are available, in four families: biquad filters, time and space, character and modulation, and utility.

Mix Effects API


API Reference

Request Bus: GS_MixingRequestBus

Channel control. Singleton bus — single address, single handler.

MethodParametersReturnsDescription
SetBusVolumeconst AZStd::string& busName, float volumevoidSets the level of a named channel (0.0 to 1.0).
GetBusVolumeconst AZStd::string& busNamefloatReturns the current level of a named channel.
MuteBusconst AZStd::string& busName, bool mutevoidMutes or unmutes a named channel.
IsBusMutedconst AZStd::string& busNameboolReturns whether a named channel is muted.
ApplyBusEffectsconst AZStd::string& busName, const AudioBusEffects& effectsvoidApplies an effects chain to a channel, replacing any existing chain.
ClearBusEffectsconst AZStd::string& busNamevoidRemoves all effects from a channel.
PushInfluenceEffectsconst AZStd::string& busName, const AudioBusInfluenceEffects& effectsvoidPushes environmental influence effects onto a channel with priority stacking.
PopInfluenceEffectsconst AZStd::string& busName, int priorityvoidRemoves influence effects at the given priority level.

Master and per-channel volume are also reachable from AudioManagerRequestBus via ChangeMasterVolume and ChangeChannelVolume.


Data Structures

TypePurpose
BusEffectsPair {#bus-effects-pair}Maps a channel name to an effects chain. This is how channels are authored on the Audio Manager.
AudioBusEffects {#audio-bus-effects}An effects chain applied to a channel.
AudioBusInfluenceEffects {#audio-bus-influence-effects}An effect set contributed by a world influencer, carrying its priority.

See Also

For related systems:

For conceptual overviews and usage guides:


Get GS_Audio

GS_Audio — Explore this gem on the product page and add it to your project.