YSE sound engine
1.0
cross platform sound engine
|
Public Member Functions | |
interfaceObject (Bool global=false) | |
void | create () |
Bool | isValid () |
interfaceObject & | setPosition (const Vec &value) |
Vec | getPosition () |
interfaceObject & | setSize (Flt value) |
Flt | getSize () |
interfaceObject & | setRollOff (Flt value) |
Flt | getRollOff () |
interfaceObject & | setActive (Bool value) |
Bool | getActive () |
interfaceObject & | setRoomSize (Flt value) |
Flt | getRoomSize () |
interfaceObject & | setDamping (Flt value) |
Flt | getDamping () |
interfaceObject & | setDryWetBalance (Flt dry, Flt wet) |
Flt | getWet () |
Flt | getDry () |
interfaceObject & | setModulation (Flt frequency, Flt width) |
Flt | getModulationFrequency () |
Flt | getModulationWidth () |
interfaceObject & | setReflection (Int reflection, Int time, Flt gain) |
Int | getReflectionTime (Int reflection) |
Flt | getReflectionGain (Int reflection) |
interfaceObject & | setPreset (REVERB_PRESET value) |
interfaceObject & | release () |
Reverb objects are actually just a collection of reverb settings.
At the and of the DSP chain the actual reverb object will look at all reverb settings that are close enough to an the listener to have an impact. A final setting will then be created that takes all other settings and their position into account. This generated setting is passed to the actual reverb.
This technique makes if possible to have a general reverb setting and assign other reverb settings to specified positions.
Definition at line 33 of file reverbInterface.hpp.
YSE::REVERB::interfaceObject::interfaceObject | ( | Bool | global = false | ) |
Creates a reverb object.
The global option should only be enabled internally!
void YSE::REVERB::interfaceObject::create | ( | ) |
Needed for internal setup of the reverb.
This must be done after System().init() and before doing anything else with this object
interfaceObject& YSE::REVERB::interfaceObject::setRollOff | ( | Flt | value | ) |
Reverb RollOff defines how long it takes for a reverb setting to go from full to zero effect.
So counting from the counter position there are two zones. Within the first zone a reverb is fully in effect. That zone is assigned with the setSize() function. This one defines the RollOff, which is the 'fade out' part of the reverb setting.
interfaceObject& YSE::REVERB::interfaceObject::setDryWetBalance | ( | Flt | dry, |
Flt | wet | ||
) |
This defines how much of the processed signal actually makes it to the output of the reverb.
In most circumstances the dry and wet should add up to 1. If the sum is > 1 you might get a distorted sound.
dry | Defines how much of the original signal will be left in the output signal. |
wet | Defines how much of the reverb should be added to the output signal. |
interfaceObject& YSE::REVERB::interfaceObject::setModulation | ( | Flt | frequency, |
Flt | width | ||
) |
This function modulates the processed reverb signal at a certain frequency.
frequency | The frequency at which to modulate the signal. |
width | The modulation width. |
interfaceObject& YSE::REVERB::interfaceObject::setReflection | ( | Int | reflection, |
Int | time, | ||
Flt | gain | ||
) |
In addition to the typical 'blurred' reverb output, you can add up to 4 reflections.
Every reflection can have its own gain and time. This function sets the time for a reflection.
reflection | The number of the reflection you'd like to change. Must be in the range [0-3] |
time | The time to which this reflection should be set. |
gain | The gain of the specified reflection. |
Int YSE::REVERB::interfaceObject::getReflectionTime | ( | Int | reflection | ) |
Get the time of the specified reflection.
reflection | The number of the reflection. Must be in the range [0-3] |
Flt YSE::REVERB::interfaceObject::getReflectionGain | ( | Int | reflection | ) |
Get the gain of the specified reflection.
reflection | The number of the reflection. Must be in the range [0-3] |
interfaceObject& YSE::REVERB::interfaceObject::release | ( | ) |
Release the reverb object.
It is not really needed to call this, because it will be called at desctruction time anyway. But you could. It renders the object invalid.