# 6. Studio API Reference | Studio::VCA

Represents a global mixer VCA.

Volume:

- Studio::VCA::setVolume Sets the volume level.
- Studio::VCA::getVolume Retrieves the volume level.

General:

- Studio::VCA::getID Retrieves the GUID.
- Studio::VCA::getPath Retrieves the path.
- Studio::VCA::isValid Checks that the VCA reference is valid.

See Also:

- Studio::System::getVCA Retrieves a loaded VCA.

## Studio::VCA::getID

Retrieves the GUID.

C
C++
C#
JS

    FMOD_RESULT Studio::VCA::getID(
      FMOD_GUID *id
    );

    FMOD_RESULT FMOD_Studio_VCA_GetID(
      FMOD_STUDIO_VCA *vca,
      FMOD_GUID *id
    );

    RESULT Studio.VCA.getID(
      out Guid id
    );

    Studio.VCA.getID(
      id
    );

id Out
  VCA GUID. (FMOD_GUID)

## Studio::VCA::getPath

Retrieves the path.

C
C++
C#
JS

    FMOD_RESULT Studio::VCA::getPath(
      char *path,
      int size,
      int *retrieved
    );

    FMOD_RESULT FMOD_Studio_VCA_GetPath(
      FMOD_STUDIO_VCA *vca,
      char *path,
      int size,
      int *retrieved
    );

    RESULT Studio.VCA.getPath(
      out string path
    );

    Studio.VCA.getPath(
      path,
      size,
      retrieved
    );

path Out Opt
  Buffer to receive the path. (UTF-8 string)
size
  Size of the path buffer in bytes. Must be 0 if `path` is null.
retrieved Out Opt
  Length of the path in bytes, including the terminating null character.

The strings bank must be loaded prior to calling this function, otherwise FMOD_ERR_EVENT_NOTFOUND is returned.

If the path is longer than `size` then it is truncated and this function returns FMOD_ERR_TRUNCATED.

The `retrieved` parameter can be used to get the buffer size required to hold the full path.

## Studio::VCA::getVolume

Retrieves the volume level.

C
C++
C#
JS

    FMOD_RESULT Studio::VCA::getVolume(
      float *volume,
      float *finalvolume = 0
    );

    FMOD_RESULT FMOD_Studio_VCA_GetVolume(
      FMOD_STUDIO_VCA *vca,
      float *volume,
      float *finalvolume
    );

    RESULT Studio.VCA.getVolume(
      out float volume
    );
    RESULT Studio.VCA.getVolume(
      out float volume,
      out float finalvolume
    );

    Studio.VCA.getVolume(
      volume,
      finalvolume
    );

volume Out Opt
  Volume set by Studio::VCA::setVolume.
finalvolume Out Opt
  Final combined volume.

The final combined volume returned in `finalvolume` combines the user value set using Studio::VCA::setVolume with the result of any automation or modulation applied to the VCA. The final combined volume is calculated asynchronously when the Studio system updates.

## Studio::VCA::isValid

Checks that the VCA reference is valid.

C
C++
C#
JS

    bool Studio::VCA::isValid()

    bool FMOD_Studio_VCA_IsValid(FMOD_STUDIO_VCA *vca)

    bool Studio.VCA.isValid()

    Studio.VCA.isValid()

## Studio::VCA::setVolume

Sets the volume level.

C
C++
C#
JS

    FMOD_RESULT Studio::VCA::setVolume(
      float volume
    );

    FMOD_RESULT FMOD_Studio_VCA_SetVolume(
      FMOD_STUDIO_VCA *vca,
      float volume
    );

    RESULT Studio.VCA.setVolume(
      float volume
    );

    Studio.VCA.setVolume(
      volume
    );

volume

  Volume level. Negative level inverts the signal.

  - Units: Linear
  - Range: (-inf, inf)
  - Default: 1

The VCA volume level is used to linearly modulate the levels of the buses and VCAs which it controls.

See Also: Studio::VCA::getVolume