About Audio Middleware

 

So you’ve seen this term “audio middle-ware” flying around in conversations and possibly pondered these questions:

  1. What is audio middle-ware?
  2. Why do we need it?
  3. Why should I learn it?
  4. Which ones should I learn?

 

What is it?

Audio middleware is a third party tool set that sits between the game engine and the audio hardware. It provides common functionality that is needed on each project such as randomizing pitch or volume, fading sounds in or out, and picking randomly a sound from a set of sounds.

Traditionally audio middleware performed the functionality of providing engineers an with the same interface to the hardware through an API (application programmers interface). This meant that over time as new consoles / platforms were developed, the engineers could re-use the same code calls without needing to update their own code, or even develop new code to talk to the new audio hardware.

As our expectations for audio behavior has evolved, so too has audio middleware’s functionality. Today’s middleware provide other tools that we re-use across projects and platforms.

Why do we need it?

Game engines usually come with some sort of audio support. Primarily the audio functionality is around the type of games that the engine is supporting. Unreal was geared more towards first person shooters, Unity more towards indie game developers.

However a tool that tries to be everything starts to fall behind as time progresses and costs increase as each individual part of the tool has to be updated to stay competitive with other engines. Audio middleare only cares about one thing.. audio and how to provide the best tools to enable you to create the best audio experience – easily.

To answer this question, lets ask the question – what do the leaders in modern middleware provide?

  • A re-usable authoring tool not tied to a game engine thus providing some sort of industry standardization.
  • Specialized audio tools that are constantly improving for audio content creators and engineers alike by combining commonalities across the entire industry.
  • Improvement of engineering and audio resource efficiency.
    • Reduces the task load on the programmers to manage audio code and tools across platforms and projects.
    • Allowing the engineers to concentrate on game behavior rather than re-inventing the wheel.
    • Allows audio content creators to concentrate and re-use methods of implementing audio behavior
    • Allows some authoring and mixing in real time
    • Provides ways to design and prototype complex audio behavior without the need for an engineer.
  • Tools that allow both audio and engineering teams to monitor audio statistics which assists:
    • optimization of audio memory and cpu usage
    • optimization of audio channel usage to help mix
    • debugging and reporting tools to help find issues quickly

 

 

 

Why should I learn one?

 

 

 

The most important career benefit to learning audio middleware is the portability and marketability of your skills in the industry between companies.

The most important job functionality benefit is becoming familiar with tools that help you craft audio behavior in a consistent means across projects. Like any instrument, the more you practice and learn technique the more complex arrangements you can play efficiently and learn quickly.

Artists alike have common authoring tool knowledge between jobs – such as Flash, ZBrush, Maya, Speed Tree among others.

Engineers know C# programming language or Objective C, Havok physics, Bink video compression and perhaps Unreal Engine, Unity or Gamebryo.

Sound Designers and Composers have FMOD, WWise and FABRIC (currently for Unity).

These tools allow content to be implemented, managed and function the same way across different release platforms.

However, the most important part of learning a tool is the underlying concepts and methodologies the tool is built upon.

Consider this, how is it that a guitarist can pick up a nylon-string classical guitar and bang out a song with little effort compared to an electric guitar? How is it that an artist can model a 3D image in Maya or 3D Studio Max or any other tool with only a little bit of effort?

Tools are just tools, what understanding a tool well does is help you understand what the tool is helping you achieve and how. With a guitar, it’s playing music – on 6 strings, with various fingering techniques. With 3D modelling tools, it’s manipulating points, vectors, faces and textures in a 3D space. The tools may have a different interface and may work slightly differently, but the inherent knowledge about the desired functionality is what is ultimately portable.

Ultimately each of the 3 mentioned middleware industry leaders WWise, FMOD and Fabric provide slightly different approaches to authoring content for games.

 

 

WWise

WWise

 

  •  It’s modular and I’d say quite akin to Audio Mechanical Lego. Small pieces that move that can be plugged together in clever ways to make something bigger and more complex that can move.
  • The interface is quite a steep learning curve as it’s not exactly presented like a DAW – however once you understand the concepts and terminology it’s extremely powerful.
  • Designed by and for game sound designers.
  • Very easy to model, author and prototype very complex audio behaviors.
  • Prototyping of audio behavior does not need a game to be running.
  • Allows authoring of events on the fly while the game is live.
  • Has a lot of user requested features (such as disembodied ambiance system I helped design which allows random positioned sfx to be placed virtually in the game and position tracked in the game), virtual pathing for spot fx to simulate moving elements in your ambiance – such as wind, bugs, birds… etc.
  • Event driven system, including nested events.
  • Unreal Editor 4 plugin
  • New version has Integration with Nuendo 7
  • Supports localization
  • Unity: needs an interfacing library and different compiles per platform.

 

 

fmodstudio

FMOD Studio

 

  • FMOD is presented in a way that is more like a traditional DAW. Linear pieces that can be fashioned together to provide functionality.
  • Designed more for non-game sound designers and composers.
  • Very good for building layered audio, event driven including nested events.
  • Has toolset built in for prototyping and testing vehicle engines – has been used in many racing titles.
  • Traditionally better support and more optimized for hand-held devices.
  • Can author content on the fly now.
  • Supports virtual and hardware decompression on handhelds.
  • Supports other musical file formats such as MOD (.mod, .xm, .it, .s3m) and MIDI files.
  • Supports localization
  • Plugin for Unreal Editor 4.
  • Unity: needs an interfacing library and different compiles per platform.

 

 

FabricLogo

Fabric

 

  • A relatively new player in the audio middleware engine market but has already made huge splashes in regards to a native Unity solution.
  • Many large developers and small ones have started using Fabric as their Unity solution.
  • Functions similarly to WWise conceptually, but without the nice authoring tools (yet so I’m told)
  • The only solution that runs on the web – with WebGL.
  • It runs on unity’s base audio layer (which is actually low level FMOD SDK)
  • Utilizes Unity’s mixer states and output for state/snapshot driven mixing.
  • Currently still improving the tool-set and functionality so very good response to feature requests.
  • New native component allowing it to run in Unreal Editor 4 – other versions coming out soon.
  • Reaper Integration
  • Replacing audio files while the game is running will pick up the changes without needing to restart (Unity feature).
  • Supports localization
  • Unity: Currently authored in Unity so don’t need interface scripts or libraries or plugins.