Audio Mixers

Hi,

Main thing I would like to know is how do you organize/manage your audio mixers?
Do you keep one master mixer with subcategories or do you have several masters for different jobs?

Also, is there a significant performance hit when as you increase the number of mixer groups? I aware that when you add effects there is a cost, but that is not what I mean, I mean like a general overhead.

Thank you!

Here’s quite a long post with only anecdotal information.
However, while figuring all of this stuff out myself, I felt there was a distinct lack of personal accounts on workflow.
So I want to contribute mine:

I was a bit hesitant replying on this. I might also have picked up some misconceptions along the way myself.
So if anybody can contribute or correct me, that would be awesome.

TLDR:

  • I wouldn’t bother with small projects.

  • Completely Isolated features, or setups that require in-engine mixing can benefit from separate mixers

  • Exposed values VS Snapshots can give subtle issues when colliding. Since snapshots are mixer wide, having multiple mixers could? alleviate this.

  • There is a very welcome visibility setting in the mixer hierarchy reducing (my personal) need to use separate mixers for organization.

  • I theorize having feature-specific mixers with their own snapshots can be very powerful.

  • If at all possible, plan ahead. Groups are not movable between mixers.

  • I have no knowledge of specifics in mixer overhead, although the manual mentions mixers auto-disabling when not in use suggesting there is at least some overhead.

I wouldn’t bother with small projects.

I’ve been on a lot of smaller projects since the mixer was introduced.
We had absolutely no need for sub-mixers there.
Recently, I’ve ventured into other waters, working on a bigger project.
First as a freelancer, now full-time, meant we kind of just jumped in.

Completely Isolated features, or setups that require in-engine mixing can benefit from separate mixers

Most of our audio is generated by either ambience, dialogue, footsteps or UI. We also have music.
those were routed to their respective groups. No trouble there.

Then we introduced a separate sequence, using a timeline triggering linear events, and a lot of separate sound effects. This required a lot of mixing in-engine so that sequence got it’s own sub-mixer.
Nothing special here and very project specific.

Exposed values versus Snapshots can give subtle issues when colliding.
Since snapshots are mixer wide, having multiple mixers could? alleviate this.

Audio features starting to trickle down from design and gameplay considerations:

  • Snapshots for different gameplay situational mixing

  • Music sequencing requiring multiple groups

  • Music fade out by code

  • Muting specific groups based on positioning in game

  • Muting channels on pause

  • User Volume settings

  • A ‘zone’ system where mixer parameters transition based on where you are in that zone

Some of these features overlap, needing to alter the volume or parameters of the same audio flows.
Snapshots function mixer-wide.
The manual states the following about exposed values:
“When a parameter is exposed, it is not controlled by mixer snapshots and can therefore only be changed via this function.”

To my experience this is only partly correct. Values still affected by snapshot transitions before they are set in code for the first time.
This can lead to subtle issues. If exposed values differ in snapshots, and you store ‘default values’ of exposed parameters in code before changing them,
you will get different results.

It’s quite trivial, but not wanting to think about ‘exposed value / snapshot collision’ all the time I wouldn’t mind splitting some of my mix up in sub-mixers.

There is a very welcome visibility setting in the mixer hierarchy reducing (my personal) need to use separate mixers for organization.

Yup! Gotta love the ‘Views’ section.

I personally would have loved having multiple attenuation components on a group, having multiple exposable parameters for a single group’s volume.
Since this is not the case; We have to introduce extra groups. (for user volume, fading sequences etc…)
Since the ‘Mute’ (and incidentally ‘Solo’) functions of a group are not exposable, wanting to mute a channel, but retain the gain value of the channel, we have to introduce even more groups.

Having separate views keeps this manageable, and i have to say the ‘groups’ hierarchy is quite clear as well.

Also, there’s a tiny bug when ‘Show Group Connections’ is turned on:
The ‘cable connections’ will not render when a group is out of view. Having separate Views for routing setups helps keep things clear.

I theorize having feature-specific mixers with their own snapshots can be very powerful.

So, one day I looked at all these overlapping features, and had a hard time keeping it organized for myself.
This was in part due to half the work being done in freelance capacity. Still I’d advice to keep a clear picture at all times of how all the features fit together.
While re-organizing, and creating separate groups for user volume control, I wanted to try out using separate mixers.
Maybe a ‘main’ mixer for the large groups & user controls. Which could have snapshots for the general balance between dialogs and ambiences.
Specialized mixers can have their own snapshots for feature-specific transitions.

I’d still love to try this out, and -if successful- would probably cut feature specific audio code in half.

If at all possible, plan ahead. Groups are not movable between mixers.

The thing is; to my knowledge, it’s impossible to move audio groups between mixers.

At this stage, almost all of our game’s content has audio sources layed out, routed to the correct groups.
Re-doing the mixer layout would mean having to track down all sources routed to their respective mixergroups, and re-routing them.
We simply don’t have time to invest in that work (and bug-fixing cleanup afterwards).

I have no knowledge of specifics in mixer overhead
It could be a little - it could be a lot
Although the manual mentions mixers auto-disabling when not in use
suggesting there is at least some overhead.

I consider myself a programmer turned audio guy, so by all means take my account as a passing advice, and nothing more. Each project needs it’s own figuring out.

Hope this helps you.

2 Likes

Hey, Thank you very much for taking the time to answer this in such detail, really appreciate it! Definitely helps! Made me realize there’s a lot I need to read up on like snapshots and Time line (I never thought to use this with audio).