# 7. Core API Reference | Reverb3D

An interface that manages virtual 3D reverb spheres. See the 3D Reverb guide for more information.

General:

- Reverb3D::set3DAttributes Sets the 3D attributes of a reverb sphere.
- Reverb3D::get3DAttributes Retrieves the 3D attributes of a reverb sphere.
- Reverb3D::setProperties Sets the environmental properties of a reverb sphere.
- Reverb3D::getProperties Retrieves the environmental properties of a reverb sphere.
- Reverb3D::setActive Sets the active state.
- Reverb3D::getActive Retrieves the active state.
- Reverb3D::setUserData Sets a user value associated with this object.
- Reverb3D::getUserData Retrieves a user value associated with this object.
- Reverb3D::release Releases the memory for a reverb object and makes it inactive.

## Reverb3D::get3DAttributes

Retrieves the 3D attributes of a reverb sphere.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::get3DAttributes(
      FMOD_VECTOR *position,
      float *mindistance,
      float *maxdistance
    );

    FMOD_RESULT FMOD_Reverb3D_Get3DAttributes(
      FMOD_REVERB3D *reverb3d,
      FMOD_VECTOR *position,
      float *mindistance,
      float *maxdistance
    );

    RESULT Reverb3D.get3DAttributes(
      ref VECTOR position,
      ref float mindistance,
      ref float maxdistance
    );

    Reverb3D.get3DAttributes(
      position,
      mindistance,
      maxdistance
    );

position Out Opt
  Position in 3D space represnting the center of the reverb. (FMOD_VECTOR)
mindistance Out Opt
  Distance from the centerpoint within which the reverb will have full effect.
maxdistance Out Opt
  Distance from the centerpoint beyond which the reverb will have no effect.

See the 3D Reverb guide for more information.

See Also: Reverb3D::set3DAttributes

## Reverb3D::getActive

Retrieves the active state.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::getActive(
      bool *active
    );

    FMOD_RESULT FMOD_Reverb3D_GetActive(
      FMOD_REVERB3D *reverb3d,
      FMOD_BOOL *active
    );

    RESULT Reverb3D.getActive(
      out bool active
    );

    Reverb3D.getActive(
      active
    );

active Out

  Active state of the reverb sphere.

  - Units: Boolean
  - Default: True

See the 3D Reverb guide for more information.

See Also: Reverb3D::setActive

## Reverb3D::getProperties

Retrieves the environmental properties of a reverb sphere.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::getProperties(
      FMOD_REVERB_PROPERTIES *properties
    );

    FMOD_RESULT FMOD_Reverb3D_GetProperties(
      FMOD_REVERB3D *reverb3d,
      FMOD_REVERB_PROPERTIES *properties
    );

    RESULT Reverb3D.getProperties(
      ref REVERB_PROPERTIES properties
    );

    Reverb3D.getProperties(
      properties
    );

properties Out
  Reverb properties. (FMOD_REVERB_PROPERTIES)

See the 3D Reverb guide for more information.

See Also: Reverb3D::setProperties

## Reverb3D::getUserData

Retrieves a user value associated with this object.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::getUserData(
      void **userdata
    );

    FMOD_RESULT FMOD_Reverb3D_GetUserData(
      FMOD_REVERB3D *reverb3d,
      void **userdata
    );

    RESULT Reverb3D.getUserData(
      out IntPtr userdata
    );

    Reverb3D.getUserData(
      userdata
    );

userdata Out
  User data set by calling Reverb3D::setUserData.

This function allows arbitrary user data to be retrieved from this object. See the User Data section of the glossary for an example of how to get and set user data.

See Also: 3D Reverb

## Reverb3D::release

Releases the memory for a reverb object and makes it inactive.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::release();

    FMOD_RESULT FMOD_Reverb3D_Release(FMOD_REVERB3D *reverb3d);

    RESULT Reverb3D.release();

    Reverb3D.release();

If you release all Reverb3D objects and have not added a new Reverb3D object, System::setReverbProperties should be called to reset the reverb properties.

See Also: System::createReverb3D

## Reverb3D::set3DAttributes

Sets the 3D attributes of a reverb sphere.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::set3DAttributes(
      const FMOD_VECTOR *position,
      float mindistance,
      float maxdistance
    );

    FMOD_RESULT FMOD_Reverb3D_Set3DAttributes(
      FMOD_REVERB3D *reverb3d,
      const FMOD_VECTOR *position,
      float mindistance,
      float maxdistance
    );

    RESULT Reverb3D.set3DAttributes(
      ref VECTOR position,
      float mindistance,
      float maxdistance
    );

    Reverb3D.set3DAttributes(
      position,
      mindistance,
      maxdistance
    );

position Opt

  Position in 3D space represnting the center of the reverb. (FMOD_VECTOR)

  - Units: Distance units
  - Default: (0, 0, 0)
mindistance

  Distance from the centerpoint within which the reverb will have full effect.

  - Units: Distance units
  - Default: 0
maxdistance

  Distance from the centerpoint beyond which the reverb will have no effect.

  - Units: Distance units
  - Default: 0

See the 3D Reverb guide for more information.

When the position of the listener is less than maxdistance away from the position of one or more reverb objects, the listener's 3D reverb properties are a weighted combination of those reverb objects. Otherwise, the reverb dsp will use the global reverb settings.

See Also: Reverb3D::get3DAttributes

## Reverb3D::setActive

Sets the active state.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::setActive(
      bool active
    );

    FMOD_RESULT FMOD_Reverb3D_SetActive(
      FMOD_REVERB3D *reverb3d,
      FMOD_BOOL active
    );

    RESULT Reverb3D.setActive(
      bool active
    );

    Reverb3D.setActive(
      active
    );

active

  Active state of the reverb sphere.

  - Units: Boolean
  - Default: True

See the 3D Reverb guide for more information.

See Also: Reverb3D::getActive

## Reverb3D::setProperties

Sets the environmental properties of a reverb sphere.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::setProperties(
      const FMOD_REVERB_PROPERTIES *properties
    );

    FMOD_RESULT FMOD_Reverb3D_SetProperties(
      FMOD_REVERB3D *reverb3d,
      const FMOD_REVERB_PROPERTIES *properties
    );

    RESULT Reverb3D.setProperties(
      ref REVERB_PROPERTIES properties
    );

    Reverb3D.setProperties(
      properties
    );

properties
  Reverb properties. (FMOD_REVERB_PROPERTIES)

See the 3D Reverb guide for more information.

Reverb presets are available, see FMOD_REVERB_PRESETS.

See Also: Reverb3D::getProperties

## Reverb3D::setUserData

Sets a user value associated with this object.

C
C++
C#
JS

    FMOD_RESULT Reverb3D::setUserData(
      void *userdata
    );

    FMOD_RESULT FMOD_Reverb3D_SetUserData(
      FMOD_REVERB3D *reverb3d,
      void *userdata
    );

    RESULT Reverb3D.setUserData(
      IntPtr userdata
    );

    Reverb3D.setUserData(
      userdata
    );

userdata
  Value stored on this object.

This function allows arbitrary user data to be attached to this object. See the User Data section of the glossary for an example of how to get and set user data.

See Also: Reverb3D::getUserData