Valve Introduces Steam Audio

Published by

teaser

Steam Audio is has been released, delivering an advanced spatial audio solution for games and VR apps. Steam Audio includes several exciting features that significantly improve immersion and open up new possibilities for spatial audio design.



The Steam Audio SDK is available free of charge, for use by teams of any size, without any royalty requirements. Steam Audio currently supports Windows, Linux, macOS, and Android. Just like Steam itself, Steam Audio is available for use with a growing list of VR devices and platforms.

Steam Audio SDK is not restricted to any particular VR device or to Steam.

Download the tools[valvesoftware.github.io] at Steam Audio on GitHub, then visit the Steam Audio Community Hub for the latest news and discussions, or to just share your thoughts and feedback. 

What is Steam Audio?

Steam Audio adds physics-based sound propagation on top of HRTF-based binaural audio, for increased immersion. Sounds interact with and bounce off of the actual scene geometry, so they feel like they are actually in the scene, and give players more information about the scene they are in.

What can Steam Audio do?


Binaural Rendering
The simplest thing that any spatial audio technology must do is HRTF-based binaural rendering. This refers to a way of recreating how a sound is affected by a listener's head, ears, and torso, resulting in subtle cues that allow you to pinpoint where a sound is coming from.

Steam Audio's implementation of HRTF-based binaural rendering has a very low CPU overhead; you can handle hundreds, even thousands of sources using a single CPU core. It also minimizes the frequency coloration of audio clips, while maintaining good localization.

Occlusion
Steam Audio simulates how objects occlude sound sources. In addition to the typical raycast occlusion that many game engines already support, Steam Audio supports partial occlusion: if you can see part of a sound source, Steam Audio will only partly occlude the sound. Steam Audio uses your existing scene geometry to occlude sounds, so you don't need to create special occlusion geometry just for sounds.

Physics-Based Reverb
Reflections and reverb can add a lot to spatial audio. Steam Audio uses the actual scene geometry to simulate reverb. This lets users sense the scene around them through subtle sound cues, an important addition to VR audio. This physics-based reverb can handle many important scenarios that don't easily fit within a simple box-model. 

Steam Audio applies physics-based reverb by simulating how sound bounces off of the different objects in the scene, based on their acoustic material properties (a carpet doesn't reflect as much sound as a large pane of glass, for example). Simulations can run in real-time, so the reverb can respond easily to design changes. Add furniture to a room, or change a wall from brick to drywall, and you can hear the difference.

Real-Time Sound Propagation
In reality, sound is emitted from a source, after which it bounces around through the environment, interacting with and reflecting off of various objects before it reaches the listener. Developers have wanted to model this effect, and tend to manually (and painstakingly!) approximate sound propagation using hand-tuned filters and scripts. Steam Audio automatically models these sound propagation effects.

If your geometry is mostly static, you can bake reverb during design. If a sound source is fixed in place, you can bake sound propagation effects during design. For VR experiences where you have only a few listener positions, but multiple moving sources, you can bake sound propagation effects during design too.

Putting It All Together
Steam Audio can apply binaural rendering to occlusion, reverb, and sound propagation effects, so you can get a strong sense of space and direction, even from reflected sounds, reverb entering a room through a doorway, and more. 

Download the Steam Audio SDK Beta[valvesoftware.github.io] now and try any of these features today. Steam Audio is currently available as a plugin for Unity and as a C API for integration into custom engines and tools.


Share this content
Twitter Facebook Reddit WhatsApp Email Print