Game Audio Table - Audio Middleware Implementation Table
Last Update : 17.09.2015
(Chinese Version)中文版本 @Moy_Fw 翻译
- Audio Compression Fix
- Steaming Audio Fix

Game Audio Table V2.7
Audio Middleware Implementation Table

#GameAudioTable

GitHub Repository with Source Code

Feature Exists
A Workaround
Doesn't Exist As Far As I Know

                       *Mouse Over a feature for a description
Engine

Unity5

Fabric

Master Audio

Unreal 4

Wwise

FMOD

Feature

Unity Plug-ins
Documentation Click Here Click Here Click Here Click Here Click Here Click Here
Price (Lowest Tier) Under 100K Revenue
Free
Under 150K Budget
Free
45$ 5% of Revenue
Or Custom Agreement
Less Then 200 Assets
Free
Under 100K Budget
Free
SFX Variation AudioClip[] Random Component Drag and Drop Multiple Audio Clips SoundCue -> Random Node Random Container Multi Sound
Pitch Modulation audio.pitch = Random.Range (Min,Max) Audio Component -> Rand Pitch (+/-) Master Audio Group -> Use Random Pitch SoundCue -> Modulator Node Randomizer Modulation -> Random
Variation Priority / Probability Code Yourself Event Trigger -> Probability Master Audio Group -> Voices (Weight) SoundCue -> Modulator Node -> Weights Weight Play Percentage
3D 3D Sounds Sound Source -> Unity's Audio Source 3D Settings Audio Component ->
Unity's Audio Source 3D Settings
Sound Source ->
Unity's Audio Source 3D Settings
3D -> Set Attenuation Positioning -> 3D Master Track -> 3D Panner
Custom Rolloff / Attenuation Curve Sound Source -> 3D Settings Runtime Parameter -> Parameter
-> Distance, Property Volume.
& Audio Component -> Override Unity's 3D -> Max Distance = Min Parameter Value
Sound Source -> Unity's 3D Settings Blueprints -> Attenuation Node -> Size Adjustments Positioning -> Attenuation -> Edit 3D Panner -> Off -> Add Built-in Parameter
-> Distance
Save Custom Made Rolloff / Attenuation Curve Prefabs Prefabs & XML Support Create Custom Attenuation Prefab -> Add to Audio Master
-> Group Mixer -> Apply Audio Source Templates
Audio Component -> Attenuation Setting -> Create New Attenuation Class Positioning -> 3D ->
Attenuation -> Edit -> Save Pre-set
Copy and Paste Curves
3D Sound in Game Engine Visualization Audio Source -> 3D settings -> Max Distance
(casts a sphere in editor on change)
Unity's Audio Visualization Unity's Audio Visualization SoundCue -> Debug |
In Game ->
(command stat sounds -Debug)
1. Using Unreal's Audio Visualization
2. Wwise's API Show Attenuation Sphere
1. Using Unreal's Audio Visualization
2. Unity Code Yourself (Draw sphere)
3. In Audio Engine Visualization -> Profiler -> 3D View
Distance Driven Parameters
(Besides Panning and Volume)
Spread, Reverb
(Code Yourself - Any)
Window -> Fabric -> Run Time Parameters
-> Parameter -> Distance
Spread, Reverb
(Code Yourself - Any)
Continuous Modulator Node
(pitch only)
New Game Parameter
-> Bind to Build-In Parameter -> Distance
Add Parameter
Add Built-in Parameter -> Distance
Music Dynamic Music
Individual Instrument Mix
Code Yourself
(Hard to keep in Sync)
Music Component
-> Multiple Components Sync to Master Tempo
Multiple Playlist Scripts -> Sync Clips Can Be Done In Blueprints or via SoundMix Changes Music Segment
-> Multiple Music Tracks
New Parameter
-> Multiple Logic Tracks
Dynamic Music
Intensity Level Based
1.Multiple Audio Sources Different Volumes
All Mute and One is Full Volume
2.Interpolate Between
Mixer Screen-shots
Timeline Components
Controlled by Parameters / EventActions
Multiple Playlist Scripts -> Sync Clips
Code Parameter Yourself
Alter Volume Parameter or SoundMix Change Music
Switch Container
Loop Regions
Controlled by Parameters
Music Intros and Outros Not That I Know Of Intro Loop Outro, Sequence
Timeline and Music Components
Arrange in PlaylistController -> Uncheck Shuffle Mode
Add 3 Files Into,Loop,Outro
Can Be Done in Blueprints Move Entry Cue and Exit Cue Arrange In Event's Logic Timelines
On Beat Transitions Get Spectrum Data
Code Yourself
Music Component Transition -> Transitions -> Sync On Not That I Know Of Can Be Done in Blueprints Transitions -> Source -> Exit Source At Logic Tracks -> Transition -> Quantizable Intervals
Entering a Loop Chance to Play Code Yourself Event Trigger -> Probability Not That I Know Of Can Be Done In Blueprints - Random Node Music Sequence -> Weight Play Percentage
Edit Transitions Not That I Know Of Music Component -> Transitions Master Audio -> Fades
& PlaylistController -> Song Changed Event
Not That I Know Of Specific Transitions/ Fade In or Out/ Stingers Arrange In Event's Transition Timelines
Double Click on a Transition to Customize
Mixing Side Chaining / Ducking Mixer -> Add Duck Volume Effect -> Send to Duck Vol Effect ADD Component -> Sidechain 1. Assign To Bus -> Use Unity 5 Audio Mixer
2. Master Audio -> Music Ducking
Sound Class -> Passive Sound Mix Add Effect -> Wwise Meter -> Assign Parameter to Volume Add Effect -> Compressor -> Sidechain ON
Add Sidechain
Mixing Snapshots Window -> Mixer -> Snapshots Unity5's Mixing Snapshots Unity5's Mixing Snapshots Save SoundClasses Layout -> Mixer -> Save and Load Mixing Sessions Window -> Mixer -> Snapshots tabs
Real Time Mixing Window -> Mixer -> Edit in play mode Play mode Persistence in Editor, OSC Server/Listener Components Master Audio -> Show Advanced -> Save Runtime Changes Researching... Remote... -> Connect File -> Connect to Game
System Audio Debugging Debug.Log(); Window -> Fabric -> (EventLog / EventMonitor)
Or Debug.Log();
Master Audio -> Advanced Settings -> Log Sounds / Log Custom Events Blueprint Debugger / stat sounds -debug F6 -> Profiler Window -> Profiler
Editable Profiler Replays Not That I Know Of Not That I Know Of Not That I Know Of Not That I Know Of Not That I Know Of Instant Replay
Profiler -> Toggle API button
Parameters audio. Parameters MasterAudio. Blueprint Nodes RTPC (Real Time Parameter Controller) Parameters
Design Approach C#/JavaScript Event Based System( Logic Done in Unity's Hierarchy) Unity Event-Based
Or C#/JavaScript
C++ / Blueprints Event Based System ( Most Logic is Written in Code) Visual Logic Tracks ( Most Logic is Done Visually)
Web Build Support Yes Yes Yes Not That I Know Of No (Using System.IO) No (Using System.IO)
Import .MP3 format files Yes Yes Yes Not That I Know Of Not That I Know Of Yes
Import .Ogg format files (Vorbis) Yes Yes Yes Code Yourself Not That I Know Of Yes
In Engine Audio Compression Format Conversion
(Vorbis / PCM / ADPCM)
Inspector On a Sound -> Override -> Compression Format Inspector On a Sound -> Override -> Compression Format Inspector On a Sound -> Override -> Compression Format Not That I Know Of Sound Selected -> Source Settings -> Conversion Setting Bank Tab - > Select Bank -> Select Platform
Audio Steaming Inspector On a Sound -> Override -> Load Type Inspector On a Sound -> Override -> Load Type Inspector On a Sound -> Override -> Load Type Code Yourself Sound Selected -> General Settings -> Check-box Stream Bank Tab - > Select Event -> Click on Steam Button on Audio Track

This table is a based on personal experiences and community acquired data.
Feedback, contributions and critiques are most welcome. @Dani_Kogan

Thanks

Huge thanks to contributors which added information, helped fix problems and pointed to inconsistencies in the table.

@darktonicgames
@bpaterson2000
@Tazman_Audio
@ShriekStudios
@Moy_Fw
@GameAudioInst
@AnastasiaDevana
@MattRyanSound
@AKMikeD
@redbluemonkey
@JayMFernandes
@SimonDSchmidt
@DePanther