Spinning Topp Logo BlackTopp Studios
inc
Public Member Functions | Public Attributes | List of all members
Mezzanine::Audio::EAXReverbParameters Struct Reference

This is a struct containing all the parameters needed to describe an EAX Reverb effect. More...

#include <effectparameters.h>

+ Collaboration diagram for Mezzanine::Audio::EAXReverbParameters:

Public Member Functions

 EAXReverbParameters (Real density=1.0f, Real diffusion=1.0f, Real gain=0.32f, Real gainHF=0.89f, Real gainLF=0.0f, Real decayTime=1.49f, Real decayHFRatio=0.83f, Real decayLFRatio=1.0f, Real reflectionsGain=0.05f, Real reflectionsDelay=0.007f, Vector3 reflectionsPan=Vector3(0.0f, 0.0f, 0.0f), Real lateReverbGain=1.26f, Real lateReverbDelay=0.011f, Vector3 lateReverbPan=Vector3(0.0f, 0.0f, 0.0f), Real echoTime=0.25f, Real echoDepth=0.0f, Real modulationTime=0.25f, Real modulationDepth=0.0f, Real airAbsorptionGainHF=0.994f, Real hFReference=5000.0f, Real lFReference=250.0f, Real roomRolloffFactor=0.0f, Boole decayHFLimit=true)
 Struct constructor. More...
 

Public Attributes

Real AirAbsorptionGainHF
 The Air Absorption Gain HF property controls the distance-dependent attenuation at high frequencies caused by the propagation medium. More...
 
Boole DecayHFLimit
 Whether or not to limit high-frequency decay. More...
 
Real DecayHFRatio
 The Decay HF Ratio property adjusts the spectral quality of the Decay Time parameter. More...
 
Real DecayLFRatio
 The Decay LF Ratio property adjusts the spectral quality of the Decay Time parameter. More...
 
Real DecayTime
 The Decay Time property sets the reverberation decay time. More...
 
Real Density
 The Reverb Modal Density controls the coloration of the late reverb. More...
 
Real Diffusion
 The Reverb Diffusion property controls the echo density in the reverberation decay. More...
 
Real EchoDepth
 Echo Depth introduces a cyclic echo in the reverberation decay, which will be noticeable with transient or percussive sounds. More...
 
Real EchoTime
 Echo Time controls the rate at which the cyclic echo repeats itself along the reverberation decay. More...
 
Real Gain
 The master volume control for the reflected sound. More...
 
Real GainHF
 The Reverb Gain High Frequency property. More...
 
Real GainLF
 The Reverb Gain Low Frequency property. More...
 
Real HFReference
 Determines the frequency at which high-frequency effects created by other properties are measured, such as EAXReverbParameters::DecayHFRatio. More...
 
Real LateReverbDelay
 The Late Reverb Delay property defines the begin time of the late reverberation relative to the time of the initial reflection. More...
 
Real LateReverbGain
 The Late Reverb Gain property controls the overall amount of later reverberation relative to the Gain property. More...
 
Vector3 LateReverbPan
 The Late Reverb Pan property is a 3D vector that controls the spatial distribution of the late reverb. More...
 
Real LFReference
 Determines the frequency at which low-frequency effects created by other properties are measured, such as EAXReverbParameters::DecayLFRatio. More...
 
Real ModulationDepth
 Modulation Depth controls the amount of pitch change. More...
 
Real ModulationTime
 Modulation Time controls the amount of time to take when applying the set Modulation Depth. More...
 
Real ReflectionsDelay
 The Reflections Delay property is the amount of delay between the arrival time of the direct path from the source to the first reflection from the source. More...
 
Real ReflectionsGain
 The Reflections Gain property controls the overall amount of initial reflections relative to the Gain property. More...
 
Vector3 ReflectionsPan
 The Reflections Pan property is a 3D vector that controls the spatial distribution of the cluster of early reflections. More...
 
Real RoomRolloffFactor
 The Room Rolloff Factor property is one of two methods available to attenuate the reflected sound according to source-listener distance. More...
 

Detailed Description

This is a struct containing all the parameters needed to describe an EAX Reverb effect.

The Reverb effect simulates sounds that bounce off of surfaces and are reflected back at the listener.

Definition at line 57 of file effectparameters.h.

Constructor & Destructor Documentation

Mezzanine::Audio::EAXReverbParameters::EAXReverbParameters ( Real  density = 1.0f,
Real  diffusion = 1.0f,
Real  gain = 0.32f,
Real  gainHF = 0.89f,
Real  gainLF = 0.0f,
Real  decayTime = 1.49f,
Real  decayHFRatio = 0.83f,
Real  decayLFRatio = 1.0f,
Real  reflectionsGain = 0.05f,
Real  reflectionsDelay = 0.007f,
Vector3  reflectionsPan = Vector3(0.0f, 0.0f, 0.0f),
Real  lateReverbGain = 1.26f,
Real  lateReverbDelay = 0.011f,
Vector3  lateReverbPan = Vector3(0.0f, 0.0f, 0.0f),
Real  echoTime = 0.25f,
Real  echoDepth = 0.0f,
Real  modulationTime = 0.25f,
Real  modulationDepth = 0.0f,
Real  airAbsorptionGainHF = 0.994f,
Real  hFReference = 5000.0f,
Real  lFReference = 250.0f,
Real  roomRolloffFactor = 0.0f,
Boole  decayHFLimit = true 
)
inline

Struct constructor.

Parameters
densityThe Reverb Modal Density controls the coloration of the late reverb.
diffusionThe Reverb Diffusion property controls the echo density in the reverberation decay.
gainThe master volume control for the reflected sound.
gainHFThe Reverb Gain High Frequency property.
gainLFThe Reverb Gain Low Frequency property.
decayTimeThe Decay Time property sets the reverberation decay time.
decayHFRatioThe Decay HF Ratio property adjusts the spectral quality of the Decay Time parameter.
decayLFRatioThe Decay LF Ratio property adjusts the spectral quality of the Decay Time parameter.
reflectionsGainThe Reflections Gain property controls the overall amount of initial reflections relative to the Gain property.
reflectionsDelayThe Reflections Delay property is the amount of delay between the arrival time of the direct path from the source to the first reflection from the source.
reflectionsPanThe Reflections Pan property is a 3D vector that controls the spatial distribution of the cluster of early reflections.
lateReverbGainThe Late Reverb Gain property controls the overall amount of later reverberation relative to the Gain property.
lateReverbDelayThe Late Reverb Delay property defines the begin time of the late reverberation relative to the time of the initial reflection.
lateReverbPanThe Late Reverb Pan property is a 3D vector that controls the spatial distribution of the late reverb.
echoTimeModulation Time controls the amount of time to take when applying the set Modulation Depth.
echoDepthEcho Depth introduces a cyclic echo in the reverberation decay, which will be noticeable with transient or percussive sounds.
modulationTimeModulation Time controls the amount of time to take when applying the set Modulation Depth.
modulationDepthModulation Depth controls the amount of pitch change.
airAbsorptionGainHFThe Air Absorption Gain HF property controls the distance-dependent attenuation at high frequencies caused by the propagation medium.
hFReferenceDetermines the frequency at which high-frequency effects created by other properties are measured, such as EAXReverbParameters::DecayHFRatio.
lFReferenceDetermines the frequency at which low-frequency effects created by other properties are measured, such as EAXReverbParameters::DecayLFRatio.
roomRolloffFactorThe Room Rolloff Factor property is one of two methods available to attenuate the reflected sound according to source-listener distance.
decayHFLimitWhether or not to limit high-frequency decay.

Definition at line 213 of file effectparameters.h.

Member Data Documentation

Real Mezzanine::Audio::EAXReverbParameters::AirAbsorptionGainHF

The Air Absorption Gain HF property controls the distance-dependent attenuation at high frequencies caused by the propagation medium.

Remarks
It applies to reflected sound only. You can use Air Absorption Gain HF to simulate sound transmission through foggy air, dry air, smoky atmosphere, and so on. The default value is 0.994 (-0.05 dB) per meter, which roughly corresponds to typical condition of atmospheric humidity, temperature, and so on. Lowering the value simulates a more absorbent medium (more humidity in the air, for example); raising the value simulates a less absorbent medium (dry desert air, for example).

Range: 0.892 to 1.0

Definition at line 163 of file effectparameters.h.

Boole Mezzanine::Audio::EAXReverbParameters::DecayHFLimit

Whether or not to limit high-frequency decay.

Remarks
When this flag is set, the high-frequency decay time automatically stays below a limit value that's derived from the setting of the property Air Absorption Gain HF. This limit applies regardless of the setting of the property Decay HF Ratio, and the limit doesn't affect the value of Decay HF Ratio. This limit, when on, maintains a natural sounding reverberation decay by allowing you to increase the value of Decay Time without the risk of getting an unnaturally long decay time at high frequencies. If this flag is set to false, high-frequency decay time isn't automatically limited.

Definition at line 187 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::DecayHFRatio

The Decay HF Ratio property adjusts the spectral quality of the Decay Time parameter.

Remarks
It is the ratio of high-frequency decay time relative to the time set by Decay Time. The Decay HF Ratio value 1.0 is neutral: the decay time is equal for all frequencies. As Decay HF Ratio increases above 1.0, the high-frequency decay time increases so it's longer than the decay time at mid frequencies. You hear a more brilliant reverberation with a longer decay at high frequencies. As the Decay HF Ratio value decreases below 1.0, the high-frequency decay time decreases so it's shorter than the decay time of the mid frequencies. You hear a more natural reverberation.

Range: 0.1 to 20.0

Definition at line 95 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::DecayLFRatio

The Decay LF Ratio property adjusts the spectral quality of the Decay Time parameter.

Remarks
It is the ratio of low-frequency decay time relative to the time set by Decay Time. The Decay LF Ratio value 1.0 is neutral: the decay time is equal for all frequencies. As Decay LF Ratio increases above 1.0, the low-frequency decay time increases so it's longer than the decay time at mid frequencies. You hear a more booming reverberation with a longer decay at low frequencies. As the Decay LF Ratio value decreases below 1.0, the low-frequency decay time decreases so it's shorter than the decay time of the mid frequencies. You hear a more tinny reverberation.

Range: 0.1 to 20.0

Definition at line 102 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::DecayTime

The Decay Time property sets the reverberation decay time.

Remarks
It ranges from 0.1 (typically a small room with very dead surfaces) to 20.0 (typically a large room with very live surfaces).

Range: 0.1 to 20.0

Definition at line 88 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::Density

The Reverb Modal Density controls the coloration of the late reverb.

Remarks
Lowering the value adds more coloration to the late reverb.

Range: 0.0 to 1.0

Definition at line 61 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::Diffusion

The Reverb Diffusion property controls the echo density in the reverberation decay.

Remarks
It's set by default to 1.0, which provides the highest density. Reducing diffusion gives the reverberation a more "grainy" character that is especially noticeable with percussive sound sources. If you set a diffusion value of 0.0, the later reverberation sounds like a succession of distinct echoes.

Range: 0.0 to 1.0

Definition at line 66 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::EchoDepth

Echo Depth introduces a cyclic echo in the reverberation decay, which will be noticeable with transient or percussive sounds.

Remarks
A larger value of Echo Depth will make this effect more prominent. Together with Reverb Diffusion, Echo Depth will control how long the echo effect will persist along the reverberation decay. In a more diffuse environment, echoes will wash out more quickly after the direct sound. In an environment that is less diffuse, you will be able to hear a larger number of repetitions of the echo, which will wash out later in the reverberation decay. If Diffusion is set to 0.0 and Echo Depth is set to 1.0, the echo will persist distinctly until the end of the reverberation decay.

Range: 0.0 to 1.0

Definition at line 147 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::EchoTime

Echo Time controls the rate at which the cyclic echo repeats itself along the reverberation decay.

Remarks
For example, the default setting for Echo Time is 250 ms. causing the echo to occur 4 times per second. Therefore, if you were to clap your hands in this type of environment, you will hear four repetitions of clap per second.

Range: 0.075 to 0.25

Definition at line 140 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::Gain

The master volume control for the reflected sound.

Remarks
The Reverb Gain property is the master volume control for the reflected sound (both early reflections and reverberation) that the reverb effect adds to all sound sources. It sets the maximum amount of reflections and reverberation added to the final sound mix. The value of the Reverb Gain property ranges from 1.0 (0db) (the maximum amount) to 0.0 (-100db) (no reflected sound at all).

Range: 0.0 to 1.0

Definition at line 72 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::GainHF

The Reverb Gain High Frequency property.

Remarks
The Reverb Gain HF property further tweaks reflected sound by attenuating it at high frequencies. It controls a low-pass filter that applies globally to the reflected sound of all sound sources feeding the particular instance of the reverb effect. The value of the Reverb Gain HF property ranges from 1.0 (0db) (no filter) to 0.0 (-100db) (virtually no reflected sound). HF Reference sets the frequency at which the value of this property is measured.

Range: 0.0 to 1.0

Definition at line 78 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::GainLF

The Reverb Gain Low Frequency property.

Remarks
The Reverb Gain LF property further tweaks reflected sound by attenuating it at low frequencies. It controls a high-pass filter that applies globally to the reflected sound of all sound sources feeding the particular instance of the reverb effect. The value of the Reverb Gain LF property ranges from 1.0 (0db) (no filter) to 0.0 (-100db) (virtually no reflected sound). LF Reference sets the frequency at which the value of this property is measured.

Range: 0.0 to 1.0

Definition at line 84 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::HFReference

Determines the frequency at which high-frequency effects created by other properties are measured, such as EAXReverbParameters::DecayHFRatio.

Remarks
Note that it is necessary to maintain a factor of at least 10 between this property and EAXReverbParameters::LFReference so that low frequency and high-frequency properties can be accurately controlled and will produce independent effects.

Range: 1000.0 to 20000.0

Definition at line 167 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::LateReverbDelay

The Late Reverb Delay property defines the begin time of the late reverberation relative to the time of the initial reflection.

Remarks
It ranges from 0 to 100 milliseconds. Reducing or increasing Late Reverb Delay is useful for simulating a smaller or larger room.

Range: 0.0 to 0.1

Definition at line 132 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::LateReverbGain

The Late Reverb Gain property controls the overall amount of later reverberation relative to the Gain property.

Remarks
The Gain property sets the overall amount of both initial reflections and later reverberation. The value of Late Reverb Gain ranges from a maximum of 10.0 (+20 dB) to a minimum of 0.0 (-100 dB) (no late reverberation at all).

Range: 0.0 to 10.0

Definition at line 128 of file effectparameters.h.

Vector3 Mezzanine::Audio::EAXReverbParameters::LateReverbPan

The Late Reverb Pan property is a 3D vector that controls the spatial distribution of the late reverb.

Remarks
The direction of this vector controls the global direction of the reverb, while its magnitude controls how focused the reverb are towards this direction. The details under Reflections Pan, above, also apply to Late Reverb Pan.

Definition at line 136 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::LFReference

Determines the frequency at which low-frequency effects created by other properties are measured, such as EAXReverbParameters::DecayLFRatio.

Remarks
Note that it is necessary to maintain a factor of at least 10 between this property and EAXReverbParameters::HFReference so that low frequency and high-frequency properties can be accurately controlled and will produce independent effects.

Range: 20.0 to 1000.0

Definition at line 171 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::ModulationDepth

Modulation Depth controls the amount of pitch change.

Remarks
Low values of Diffusion will contribute to reinforcing the perceived effect by reducing the mixing of overlapping reflections in the reverberation decay.

Using this property and ModulationTime, you can create a pitch modulation in the reverberant sound.

Range: 0.0 to 1.0

Definition at line 157 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::ModulationTime

Modulation Time controls the amount of time to take when applying the set Modulation Depth.

Remarks
This will be most noticeable applied to sources that have tonal color or pitch. You can use this to make some trippy effects! Modulation Time controls the speed of the vibrato (rate of periodic changes in pitch).

Using this property and ModulationDepth, you can create a pitch modulation in the reverberant sound.

Range: 0.004 to 4.0

Definition at line 152 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::ReflectionsDelay

The Reflections Delay property is the amount of delay between the arrival time of the direct path from the source to the first reflection from the source.

Remarks
It ranges from 0 to 300 milliseconds. You can reduce or increase Reflections Delay to simulate closer or more distant reflective surfaces and therefore control the perceived size of the room.

Range: 0.0 to 0.3

Definition at line 112 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::ReflectionsGain

The Reflections Gain property controls the overall amount of initial reflections relative to the Gain property.

Remarks
The Gain property sets the overall amount of reflected sound: both initial reflections and later reverberation. The value of Reflections Gain ranges from a maximum of 3.16 (+10 dB) to a minimum of 0.0 (-100 dB) (no initial reflections at all), and is corrected by the value of the Gain property. The Reflections Gain property does not affect the subsequent reverberation decay.

Range: 0.0 to 3.16

Definition at line 108 of file effectparameters.h.

Vector3 Mezzanine::Audio::EAXReverbParameters::ReflectionsPan

The Reflections Pan property is a 3D vector that controls the spatial distribution of the cluster of early reflections.

Remarks
The direction of this vector controls the global direction of the reflections, whileits magnitude controls how focused the reflections are towards this direction.

It is important to note that the direction of the vector is interpreted in the coordinate system of the user, without taking into account the orientation of the virtual listener. For instance, assuming a four-point loudspeaker playback system, setting Reflections Pan to (0, 0, 0.7) means that the reflections are panned to the front speaker pair, whereas as setting of (0, 0, -0.7) pans the reflections towards the rear speakers. These vectors follow the a left-handed co-ordinate system, unlike OpenAL uses a right-handed co-ordinate system.

If the magnitude of Reflections Pan is zero (the default setting), the early reflections come evenly from all directions. As the magnitude increases, the reflections become more focused in the direction pointed to by the vector. A magnitude of 1.0 would represent the extreme case, where all reflections come from a single direction.

Definition at line 124 of file effectparameters.h.

Real Mezzanine::Audio::EAXReverbParameters::RoomRolloffFactor

The Room Rolloff Factor property is one of two methods available to attenuate the reflected sound according to source-listener distance.

Remarks
It's defined the same way as OpenAL's Rolloff Factor, but operates on reverb sound instead of direct-path sound. Setting the Room Rolloff Factor value to 1.0 specifies that the reflected sound will decay by 6 dB every time the distance doubles. Any value other than 1.0 is equivalent to a scaling factor applied to the quantity specified by ((Source listener distance) - (Reference Distance)). Reference Distance is an OpenAL source parameter that specifies the inner border for distance rolloff effects: if the source comes closer to the listener than the reference distance, the direct-path sound isn't increased as the source comes closer to the listener, and neither is the reflected sound.

The default value of Room Rolloff Factor is 0.0 because, by default, the Effects Extension reverb effect naturally manages the reflected sound level automatically for each sound source to simulate the natural rolloff of reflected sound vs. distance in typical rooms.

Range: 0.0 to 10.0

Definition at line 180 of file effectparameters.h.


The documentation for this struct was generated from the following file: