Audio guide

HTC ©2017 – Version 1.0

This brief guide assumes familiarity with basic sound design principles (3D / 2D sound, volume, attenuation etc.) It also presumes knowledge of audio implementation in *Unity*.

Audio clip providers

Because audio imparts realism to VR previews and realistic audio contains natural variations, the Viveport Scene SDK includes a special asset called an audio clip provider (fig. 1).

_images/scenesdk_image14.png

Figure 1. Creating an audio clip provider asset.

For each of these assets, you can assign a natural pitch variation for each instance of a triggered sound. The naturalistic range of pitch variance is small. Recommended ranges start at ~0.8 to ~1.1 (fig 2.)

For the velocity, looping array, and weighted random assets, you can additionally array multiple sounds to trigger under the following conditions:

  • Velocity – Naturalistically trigger sounds in order from Element 0 – x, based on user defined velocity range (i.e., lower velocity = earlier sound element) (fig 2.)

    _images/scenesdk_image15.png

Figure 2. Random pitch ranges and velocity impact ranges in an audio clip provider.

  • Looping array – Trigger sounds starting at Element 0 thru x, then return to Element 0.
  • Weighted random – Trigger sounds randomly and optionally weight preferred sounds.

Interaction types

In addition to standard sound design with autoplay Audio Sources, Viveport Scene SDK interactions make affordances for custom sound behavior. See the Viveport Interactive Objects Guide for details on setting up interactive objects.

For each interaction type, a sound can play from an Audio clip provider when:

  • *Touch* – When the user’s controller collides with the object.
  • *Click* – When the user points at an object and pulls the trigger.
  • *Pointer Enter* – When the user’s pointer intersects the object, repeats if the users points away and then points at the object again.
  • *Impact* – When a non-controller collider collides with an object that has a rigidbody attached.
  • *Object* – When another specific interactive object collides with an object

Initial setup

Any Audio Source is valid and can be used to create a sound environment. To ensure compatibility:

  • Make sure sounds are balanced, harmonious, and generally soft.
    • Aim for normalized peaks no louder than –10 dB.
    • As a guide, trim Audio Source volume to 0.2 and 0.4 for background sounds, 0.6 for midground, and no higher than 0.8 for interactions.
    • Consult the Viveport SDK Audio Reference Scene for placement of sounds, designing from the origin outward. It is located in Examples > Audio reference scene > Viveport SDK Audio Reference Scene.scene
  • Ensure that a Preview Audio Context component is added to all custom Audio Source objects. This routes the output of your Audio Source to the correct Audio Mix Group in Viveport.
  • Unity Audio Reverb Zones are supported and recommended for most soundscapes.

Interaction audio sources

For any interaction audio, it is sufficient to add an audio clip provider to the Vive Object Props component (see Viveport Scene SDK – Interactive Objects guide). This will add a default Audio Source component at runtime.

For more granular control, attach an Audio Source component to the object to configure spatial blend, volume, etc. The Vive Object Props component will inherit these settings.

See Figure 3 for a possible configuration for an object with an Impact sound interaction. You’ll notice volume is dialed back to the recommended ranges, spatial blend is set to full 3D sound, and reverb zone mix is lowered to keep loud sounds from resounding too long.

_images/scenesdk_image16.png

Figure 3. Audio source configuration for an impact sound.

Vive object audio ambience

The Vive object audio ambience component can ingest an array of similar sounds that happen at semi-regular intervals and play them at random transform locations in a scene. This is useful for sounds like birdsong and car traffic that aren’t easy to simulate through loops. It has the following controls:

  • *Ambient sounds* – An array of 2 or more sounds of a similar character.
  • *Time minimum* – The lowest value in seconds for an ambient sound to trigger.
  • *Time maximum* – The highest value in seconds for an ambient sound to trigger.
  • *Sound volume* – Sets the audio source volume between 0 and 1. See Initial Setup for recommended values.
  • *Sound distance* – Near, medium, or far. Determines the maximum of range of a sound and attenuates the minimum hearing distance.
  • *Ambient speaker* – Assumes control of the automatically-added audio source.

Note that, unlike “Vive Object Props”, this component automatically configures the attached audio source to match its controls, so values including volume and spatial blend will be overridden at runtime. Some parameters like reverb zone mix and pitch are unaffected and can be changed on the Audio Source component.

Careful deployment of this component in conjunction with static looping sounds will create a rich and realistic soundscape for your VR preview. Experiment with different sounds; you could, for example, loop a light wind on a standard audio source and create periodic gusts in 3D space with an audio ambience component.

_images/scenesdk_image17.png

Figure 4. A Vive Object Audio Ambience component configured with birdsong samples.