Audio Propagation (Beta)

The Audio Propagation feature of the Oculus Audio Spatializer provides real-time reverb and occlusion simulation based on game geometry. Its goal is to provide accurate audio propagation through a scene with minimal set up. You simply tag the scene meshes that you want included in the simulation and select the acoustic material for each mesh.

Audio Propagation Capabilities

The audio propagation system models both indoor or outdoor spaces. It can also model asymmetrical spaces, which sets it apart from conventional reverb solutions. This means that when the listener moves between indoor and outdoor spaces, the audio transition is graceful without additional portals or multiple reverb setup.

Learn more about audio propagation simulation in the Facebook Reality Labs blog post.

Setup for Audio Propagation

To use audio propagation, you must have the Oculus Audio Spatializer for Unity, version 1.34 or later, installed. For more information about how to setup the Oculus spatializer, see Requirements and Setup

The audio propagation feature includes two new scripts:

  • ONSP Propagation Geometry
  • ONSP Propagation Material

To add propagation:


  1. Make sure your scene has an Audio Source and a ONSP Audio Source component attached to the audio source. The ONSP Audio Source should have Reflections Enabled selected.
  2. In addition, ensure the Audio Source has its Output set to an Audio Mixer with Enable Reverberation turned on. For example, you can use the Master (SpatializerMixer) that comes with the Oculus Audio SDK.


  1. Add a game object with a Mesh Renderer, such as a Cube, to your scene.
  2. Click Add Component and select ONSP Propagation Geometry to add it to your object.

The ONSP Propagation Geometry has the following settings:

  • Include Child Meshes: Traverses the GameObject hierarchy and include all meshes attached to children. You can add the ONSP Propagation Material to children if you want them to have a different material than the parent.
  • File Enabled: Enables the geometry to be serialized to a file. This is required for static GameObjects. Meshes need to manually saved if they change. These should be saved to the StreamingAssets directory.

The following image shows an example.

propagation geometry

Note: Children are included with the parent, which means if you move/rotate/scale a child object at run-time, the changes to the child will not be captured. If you need a child to be able to move independently to the parent (for example a door) then add a ONSP Propagation Geometry component to that child to enable it to move/rotate/scale independently of its parent.

Then, Under Assets > Oculus > Spatializer > scripts, add a ONSP Propagation Material to the object.

The following image shows an example.

Adjusting Audio Propagation Results

Audio propagation generates reverb from game geometry, so to make adjustments, you need to adjust the geometry or materials. The propagation system doesn’t expose parameters like decay time, or low frequency roll-off.

In addition, the audio propagation system models occlusion with a simple line-of-sight calculation, and does not model diffraction. That means that the transition from audible to obstructed can be abrupt and may require some adjustments. Use the following guidelines to adjust the results:

  • If a room or space is too live, meaning the materials in the room are reflecting too much sound, consider marking one or more of the walls as a less reflective material like carpet.
  • If the sound in a room is too deadened, then consider changing some of the materials to be more reflective.
  • Use the per-source send level and an overall wet level parameter to get the reverb level right.