Sunday, 24 February 2013

Mixing Techniques 6


Advanced settings: usage and dynamic mixing techniques

Overview
Sound structures' advanced settings are specified in the "Advanced Settings" tab of the object property editor. They are used to limit the number of sounds playing at the same time, and to specify their behavior when they are inaudible:
- Specify the behavior of sounds when they are inaudible for performance reasons, to save memory and CPU.
Limiting the number sounds playing is useful for both performance, and to help you clean out your mix.

Advanced settings and mixing
You shouldn't wait too late in the production process to adjust the advanced settings. More precisely, you should at least perform a first pass before or while mixing. If you spend time tweaking your mix too early, and later realize that audio is using too much resources, you might end up using advanced settings so aggressively to keep audio processing within bounds that it would have a dramatic impact on your mix.
Playback limits should actually help you with mixing. Use them as a form of dynamic mixing, to help players focus on what's important instead of
drowning them with sounds. You may also use bus ducking, "Set Volume" actions, states or RTPC to clean out your mix.

Playback limit, priority and under volume thresholdbehavior
Playback limit used on sound structures help you limit the number of sounds playing at the same time, per game object (if specified in the Actor-Mixer and Interactive Musichierarchies) or globally (if specified in the Master-Mixer hierarchy - busses). The only logic it is based upon is the number of sounds that play. Playback limiting conditions are checked before attempting to play a sound. When a sound is about to start and the limit has already been reached, either this sound or another one is stopped. The first criterion is the sound's priority. In the case where the two candidates have the same priority, the sound engine stops either the oldest or the newest instance of the sound, as specified by the "When limit is reached and priority is equal" property.
When a sound is killed because of playback limit, it is not restarted when the play count falls below the limit. So be careful with infinitely looping ambiant sounds. Refer tothis article for more details on how playback limiting works along with the hierarchy.
Priority settings work hand in hand with playback limit. Tweak priorities  in the hierarchy to balance the limiting system. Sounds that should never be killed by the limiting system, like voice overs, background music or looping ambiant sounds, should have the highest priority. Furthermore, the effective priority can be affected by the distance between the sound and the listener (see this article for more details).
The "under volume threshold" behavior has nothing to do with playback limit and priorities. It only tells what will be the sound's behavior when it is inaudible. To determine whether a sound is inaudible, Wwise only looks at the "metadata volume", that is, the resulting contribution of all volumes (and LFE volume) of the hierarchy, busses, states, RTPC, and "Set Volume" actions. It never analyzes wave data. Use this for performance. This article explains what types of behaviors should be used in which situation.

Dynamic mixing techniques
- Limit playback on busses or on actor-mixer structures to make room for "important" sounds:
For example, reduce the number of ambiant and foley sounds when there's a lot of action, explosions, or any element on which players should focus. Find the bus where ambiances and foley meet guns and explosions, set a limit on that bus, and lower the priority of the former.
- Use distance offset for priority:
For example, among ambiance sounds, use playback limiting along with distance-based priority in order to focus on those that are closer. The "Offset priority by" option specifies a priority offset value at maximum distance, which is interpolated between 0 and "max distance".
- Duck volume of less important sounds:
It is sometimes impossible to use playback limits. For example, if you start infinitely looping ambiant sounds once at the beginning of a level, you should avoid having them stopped by playback limiting, because they will not be restarted when things calm down. In this case, or in any case you see fit, use any technique you want to duck their volume when there is activity in other, more important areas of the game's audio. For example, shut ambiances down during voice overs, or during combat: you don't need to hear the buzz of a lamp when a grenade explodes next to you. This process can be viewed as metadata side-chaining. Volume changes can be triggered using the bus ducking feature on control busses, or "set volume" actions within specific events, and so on.
Once you cleaned out your mix by lowering the volume of less important sounds in specific situations, tweak their "under volume threshold" behavior in order to have them take the least CPU and memory possible while they are inaudible.
- Implement a code-side dynamic mixing system:
Notice that the playback limits, priorities and priority offsets can be exposed to the game through RTPC. Nothing prevents you from implementing a system which adapts these settings based on what's happening in the game...
http://kb.gowwise.com/questions/201/Advanced+settings%3A+usage+and+dynamic+mixing+techniques 

No comments:

Post a Comment