Advertisement

Mixer groups and spatial effects

Started by December 03, 2019 02:33 PM
4 comments, last by l0calh05t 4 years, 11 months ago

We use mixer groups to organise, control and tweak audio playback.

Example:

MASTER

-USER_SFX (volume exposed to user via settings)

--SFX

---AMBIENT

---ANIMATIONS

---WHATEVER_MORE

-USER_MUSIC (volume exposed to user via settings)

--MUSIC

---AMBIENT

---ACTION

So, whenever the game triggers any playback, a sound is created under specified mixer group and that sound is then mixed up towards the master group, taking into account all settings and all audio effects which might be attached to a mixer group (or bus if you want). Groups also offer mute control, so when dialogs pop up, we simple mute specific groups so that they don't interfere. Another great aspect of groups is that applying effects does not need to be done on each an every playing sound, but on parent group instead. For example, we can apply Echo effect/filter on USER_SFX/SFX/AMBIENT and have effect on all ambient sounds, instead of running Echo filter on each sound under AMBIENT group. All good and dandy.

But, how to handle for example reverb effects which are based in 3D space? I cant just apply reverb on whole SFX group, since some 3D sounds might be inside the reverb area effect, while others might not. I'd like to avoid having reverb effect per sound basis. Can I?


Depends on how much you are willing to fake it. For completely different Reverb settings you won't be able to avoid per-setting reverbs. If they are in the same room you can fake it to some degree by adjusting early reflection strength (separate mixer paths for early reflections and "the rest") and pre-delay (just a static delay without feedback per-sound)

Advertisement

So it's either that or just (pre/on-demand) building the needed groups as sounds move around and shuffle sounds into correct groups. Or just having per sound effects...

Depends on what implementation you have, but in many systems you can have a variety of reverb send buses/auxes which output to the SFX group, and you can send a sound effect to whichever reverb bus is most relevant.

This loses you the fine control that you'd have with per-effect reverb, however. A tradeoff might be to use the buses for generic effects where you have a large number of them, and a specific reverb channel that you change for player-centric sound effects (e.g. the player's footsteps) which is carefully tweaked to match the current environment.

Also if there are no effects on your busses and this is only about volumes, you could implement them as "VCA groups" instead, i.e., just multiplying the gains together and applying the resulting gains to the individual sounds. Depending on your mixing system supporting that of course.

This topic is closed to new replies.

Advertisement