Positional channel properties

The audio experience of a user in a positional audio channel is determined by the Channel3DProperties component to VivoxService.Instance.JoinPositionalChannelAsync.

The following properties control the 3D experience in the channel. Each of these properties are detailed in the HTML reference for the Channel3DProperties class.

  • AudibleDistance

    • The maximum distance away from a speaker that a listener can hear the speaker and receive their text messages.
    • The default value is 32.
  • ConversationalDistance

    • Controls the range within which a speaker’s audio remains at its original volume, and beyond which the loudness of the voice chat starts to fade out when heard.
    • The default value is 1.
  • AudioFadeModel

    • Specifies the formula or curve that controls the shape of how the audio fades between the ConversationalDistance and the AudibleDistance.
    • The default value is AudioFadeModel.InverseByDistance.
  • AudioFadeIntensityByDistance

    • Controls the amplitude of the AudioFadeModel curve to make the attenuation of the voice chat loudness more or less extreme.
    • The default value is 1.0.

The default Channel3DProperties values were chosen to provide the most natural sounding, acoustically realistic 3D audio that is suitable for most situations. When using the default properties, any listener within 32 meters (about 105 feet) can hear a speaker, and the speaker is heard at full volume by anyone within 1 meter (about 3 feet).

Note: The default distance values use meters because this is the default unit of distance measurement in Unity, but you can specify these values in any scale.

When customizing distance values, consider the following guidelines:

  • You can represent the AudibleDistance and ConversationalDistance in any units, but the two units must always match. The values can be different.

    Note: You must use the same units when reporting your actor’s position by using the Set3DPosition method.

  • ConversationalDistance is the distance from the listener at which a speaker’s voice is heard at its original volume. This must be an integer in the range 0 <= ConversationalDistance <= AudibleDistance. Consider this to be the expected close-by conversational distance.

  • The ConversationalDistance sounds the most realistic when it's half the height of a typical speaking entity in your game.

    If your players are shorter or taller than typical adult humans, considering adjusting this value to match.

  • When using the default AudioFadeModel value, if you want voice chat to naturally fade to near zero loudness at the edge of the AudibleDistance so it doesn't sound like it's being abruptly cut off, then set the AudibleDistance to a minimum of:

    32 × ConversationalDistance ÷ AudioFadeIntensityByDistance.

    If you want a lower max AudibleDistance, for example, to limit the range of received texts, then you can increase AudioFadeIntensityByDistance.

    Depending on the amount of ambient game noise or music, you might want to further adjust these values to ensure that voice chat is heard only at the distances you want.

  • When using the ExponentialByDistance AudioFadeModel, it's recommended that you keep the ConversationalDistance value at 1 or greater.

  • When using the ExponentialByDistance AudioFadeModel, it's recommended that you adjust the value of the AudioFadeIntensityByDistance property based on the following formula:

    AudioFadeIntensityByDistance = 3 ÷ (1 + 1.75 × log10(ConversationalDistance))