This page has been translated automatically.
UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

Unigine.SoundReverb Class

Inherits: Node

This class is used to create reverberation zones for sound sources with reverberation flag. Such sound will have initial reflections, reverberation and echo. It can have modified pitch.

If the sound passes through two reverberation zones (for example, one reverberation zone around the player and another one around the sound source), the heard sound reverberation effect will be twice as strong.

Creating a Reverberation Zone#

To create a reverberation zone, first, create a sound source that will reverberate, then create an instance of the SoundReverb class and specify all required settings:

Source code (C#)
// create a sound source
SoundSource sound = new SoundSource("static_mono_00.oga");
sound.setWorldTransform(translate(new Vec3(10.0f)));
// disable sound muffling when being occluded
sound.setOcclusion(0);
// set the distance at which the sound gets clear
sound.setMinDistance(1.0f);
// set the distance at which the sound becomes out of audible range
sound.setMaxDistance(10.0f);
// set the gain that result in attenuation of 6 dB
sound.setGain(0.5f);
// loop the sound
sound.setLoop(1);
// start playing the sound sample 
sound.play();

// create a reverberation zone
SoundReverb reverb = new SoundReverb(new vec3(10.0f));
// set transformation
reverb.setWorldTransform(translate(new Vec3(10.0f)));
// set the threshold size that determines the distance of changing from partial to full reverberation audibility
reverb.setThreshold(new vec3(1.0f, 1.0f, 1.0f));
// set the other settings for the reverberation zone
reverb.setDensity(0.2f);
reverb.setDiffusion(0.5f);
reverb.setDecayTime(1.0f);
reverb.setReflectionGain(2.0f);
reverb.setLateReverbGain(8.0f);

To update the settings of the created reverberation zone, you can simply call the corresponding methods when necessary.

See Also#

A set of UnigineScript API samples located in the <UnigineSDK>/data/samples/sounds/ folder:

  • sound_reverb_00
  • sound_reverb_01

SoundReverb Class

Properties

vec3 Threshold#

The current threshold size values along the coordinates axes relative to the reverberation zone size. It determines the distance of changing from partial to full reverberation audibility.
set
Updates the threshold size values along the coordinates axes relative to the reverberation zone size. It determines the distance of changing from partial to full reverberation audibility.
set value - Threshold size in units.

vec3 Size#

The current size of the reverberation zone.
set
Updates the size of the reverberation zone.
set value - Size of the reverberation zone in units.

float ReflectionGain#

The current gain controlling the amount of initial reflections relative to the general reverberation gain. If set to 0.0, the sound has no initial reflections at all.
set
Updates the gain controlling the amount of initial reflections relative to the general reverberation gain. Setting the value to 0.0 will result in sound having no initial reflections at all.
set value - Initial reflections gain value in range [0.0;3.1].

float ReflectionDelay#

The current initial reflection delay determining the begin time of the first reflection from the source relative to the arrival time of the original sound.
set
Updates the initial reflection delay determining the begin time of the first reflection from the source relative to the arrival time of the original sound.
set value - Initial reflection delay in range [0.0;0.3] seconds.

float ModulationTime#

The current time for repeating the pitch modulation in the reverberation sound.
set
Updates the time for repeating the pitch modulation in the reverberation sound.
set value - Modulation repeating time in range [0.0;1.0] seconds.

float ModulationDepth#

The current modulation depth determining the amount of pitch change.
set
Updates the modulation depth determining the amount of pitch change.
set value - Modulation depth value in range [0.0;1.0].

float LateReverbGain#

The current gain controlling the amount of later reverberation relative to the general reverberation gain. If set to 0.0, the sound has no late reverberation at all.
set
Updates the gain controlling the amount of later reverberation relative to the general reverberation gain. Setting the value to 0.0 will result in sound having no late reverberation at all.
set value - Late reverberation gain value in range [0.0;10.0].

float LateReverbDelay#

The current late reverberation delay determining the begin time of the late reverberation relative to the time of the initial reflection (the first of the early reflections).
set
Updates the late reverberation delay determining the begin time of the late reverberation relative to the time of the initial reflection (the first of the early reflections).
set value - Late reverberation delay in range [0.0;0.1] seconds.

float GainLF#

The current gain filter value for attenuating the reverberation sound at low frequencies. if set to 1.0, no filter is applied.
set
Updates the gain filter value for attenuating the reverberation sound at low frequencies. When setting the value to 1.0, no filter is applied.
set value - Low frequencies gain value in range [0.0;1.0].

float GainHF#

The current gain filter value for attenuating the reverberation sound at high frequencies. if set to 1.0, no filter is applied.
set
Updates the gain filter value for attenuating the reverberation sound at high frequencies. When setting the value to 1.0, no filter is applied.
set value - High frequencies gain value in range [0.0;1.0].

float Gain#

The current gain controlling the overall amount of the initial reflections and later reverberations. if set to 0.0, the reverberation sound is muted.
set
Updates the gain controlling the overall amount of the initial reflections and later reverberations. Setting the value to 0.0 mutes the reverberation sound.
set value - Gain value in range [0.0;1.0].

float EchoTime#

The current time period for cyclic echo to repeat itself along the reverberation decay.
set
Updates the time period for cyclic echo to repeat itself along the reverberation decay.
set value - Echo repeating time in range [0.075,0.25] seconds.

float EchoDepth#

The current depth value determining how long the cyclic echo persists along the reverberation decay.
set
Updates the depth value determining how long the cyclic echo will persist along the reverberation decay.
set value - Echo depth value in range [0.0;1.0].

float Diffusion#

The current diffusion determining the rate at which the reverberation resonances increase in density after the original sound.
set
Updates the diffusion determining the rate at which the reverberation resonances increase in density after the original sound.
set value - Diffusion value in range [0.0;1.0].

float Density#

The current density of the resonances making up the reverberation sound.
set
Updates the density of the resonances making up the reverberation sound.
set value - Density value in range [0.0;1.0].

float DecayTime#

The current reverberation decay time.
set
Updates the reverberation decay time.
set value - Decay time in range [0.1;20.0] seconds.

float DecayLFRatio#

The current ratio of low-frequency decay time relative to the time set by general reverberation decay time. The value 1.0 is neutral.
set
Updates the ratio of low-frequency decay time relative to the time set by general reverberation decay time. The value 1.0 is neutral.
set value - Low-frequency decay ratio in range [0.1;2.0].

float DecayHFRatio#

The current ratio of high-frequency decay time relative to the time set by general reverberation decay time. The value 1.0 is neutral.
set
Updates the ratio of high-frequency decay time relative to the time set by general reverberation decay time. The value 1.0 is neutral.
set value - High-frequency decay ratio in range [0.1;2.0].

float AirAbsorption#

The current air absorption value determining the distance-dependent attenuation at high frequencies caused by the propagation medium.
set
Updates the air absorption value determining the distance-dependent attenuation at high frequencies caused by the propagation medium. The value of 0.994 per unit represents normal atmospheric humidity and temperature.
set value - Air absorption value in range [0.892;1.0].

float RoomRolloff#

The current scaling room rolloff factor determining attenuation of the reflected sound (containing both reflections and reverberation) over distance.
set
Updates the scaling room rolloff factor determining attenuation of the reflected sound (containing both reflections and reverberation) over distance.
set value - Room rolloff factor in range [0.0;10.0].

int ReverbMask#

The current bit mask that determines what reverberation zones can be heard. For sound to reverberate, at least one bit of this mask should match with the player's reverberation mask. At the same time, reverb mask of the sound source should also match with the player's one (but not necessarily in the same bit as this mask matches it).
set
Updates the bit mask that determines what reverberation zones can be heard. For sound to reverberate, at least one bit of this mask should match with the player's reverberation mask. At the same time, reverb mask of the sound source should also match with the player's one (but not necessarily in the same bit as this mask matches it).
set value - Integer, each bit of which is a mask for reverberating sound sources and reverberation zones.

Members


static SoundReverb ( vec3 size ) #

Constructor. Creates a new reverberation zone of specified size.

Arguments

  • vec3 size - Size of the reverberation zone in units.

static int type ( ) #

Returns the type of the node.

Return value

Sound type identifier.
Last update: 2020-07-31
Build: ()