This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Mixing & Effects

How to work with GS_Play audio mixing — volume channels, named effect chains, all 22 effects, and environmental influence zones.

Base — ships in GS_Audio.

Mixing has two jobs, and they are worth keeping separate in your head.

Volume channels group sounds by what kind of sound they are — voice, music, environment, combat — so a player can turn one down without touching the others. This is what your options menu drives.

Effect chains process the signal — filters, EQ, delay, reverb, and character effects like chorus and bit-crushing. You build a chain on a component, name it, and point sounds at that name.

All 22 effects are available in the free gem. Audio Pro authors the same processors on a visual canvas instead.

For component properties and the full effect reference, see the Framework API reference.

 

Contents


Volume Channels

Channels are configured on the Audio Manager as a named list. Each audio event names the channel it routes to.

Set them up the way your options menu will present them — a Voice channel, a Music channel, an SFX channel — and wiring the sliders becomes trivial, because the options system can drive channel levels directly.

Channels are independent of position. A footstep, a spell and a line of dialogue are all spatialized the same way, and all three route to different channels.


Building an Effect Chain

  1. Add a Mix Effect component to an entity.
  2. Give it a Name — this is what sounds and other chains will target.
  3. Add effects to its list. They run top to bottom.
  4. Set its Output Target — another chain’s name, or a volume channel.

Then point sounds at it by setting an event’s Mixing Channel to your chain’s name. Channels and chains share one namespace, so a sound does not care which kind of thing it is aimed at.

Three things that make this easier than it sounds:

  • Order does not matter. If a chain points at something that does not exist yet, the connection waits and completes when it appears. You never have to think about activation order.
  • You can add chains at runtime. Sounds already playing through that channel pick up the new routing.
  • One entity can hold several chains. Give each its own name and point one at another to compose them.

You can put a chain on the emitting entity to colour just that object’s sound, or use shared global chains for project-wide treatments. Both work, and most projects use both.


The Effects

FamilyEffects
FiltersLow Pass, High Pass, Band Pass, Notch, Peaking EQ, Low Shelf, High Shelf
Time & spaceEcho, Reverb, Binaural
CharacterWave Shaper, Lofi, Robotize, Flanger, Chorus, Ring Mod, Tremolo, Pitch
UtilityPanner, Compressor, DC Removal, Amplify

Environmental Influence Zones

A world entity can push effects onto channels while the player is inside it — walk into a cave and everything gains reverb, walk out and it lifts.

Zones stack by priority, so overlapping zones resolve predictably rather than by whichever fired last, and each zone’s contribution is tracked against the entity that applied it so removing it is unambiguous.


Quick Reference

NeedBusMethod
Set a channel’s levelAudioManagerRequestBusChangeChannelVolume
Set master volumeAudioManagerRequestBusChangeMasterVolume
List the configured channelsAudioManagerRequestBusGetMixingChannelNames
Mute a channelGS_MixingRequestBusMuteBus
Change an effect’s parameter liveAudioManagerRequestBusSetMixEffectParamOn
Re-point a chain’s outputAudioManagerRequestBusRerouteMixEffect
Apply an environmental zoneAudioManagerRequestBusApplyAudioEffectInfluence

Glossary

TermMeaning
Volume ChannelA named group of sound types with its own level, feeding Master
Mix Effect ChainAn ordered set of effects on a component, registered under a name
Output TargetWhere a chain’s last effect feeds — another chain, or a channel
Influence ZoneA world entity that imposes effects on channels while it applies

See Also

For the full API and the effect reference:

For related systems:


Get GS_Audio

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