MezzanineEngine 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
effectparameters.h
1 // © Copyright 2010 - 2014 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 // Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
41 // This file is part of the "cAudio Engine"
42 // For conditions of distribution and use, see copyright notice in cAudio-ZLIBLicense.txt
43 #ifndef _audioeffectparameters_h
44 #define _audioeffectparameters_h
45 
46 #include "vector3.h"
47 #include "Audio/audioenumerations.h"
48 
49 namespace Mezzanine
50 {
51  namespace Audio
52  {
53  ///////////////////////////////////////////////////////////////////////////////
54  /// @brief This is a struct containing all the parameters needed to describe an EAX Reverb effect.
55  /// @details The Reverb effect simulates sounds that bounce off of surfaces and are reflected back at the listener.
56  ///////////////////////////////////////
58  {
59  /// @brief The Reverb Modal Density controls the coloration of the late reverb.
60  /// @remarks Lowering the value adds more coloration to the late reverb. @n @n Range: 0.0 to 1.0
62  /// @brief The Reverb Diffusion property controls the echo density in the reverberation decay.
63  /// @remarks It's set by default to 1.0, which provides the highest density. Reducing diffusion gives the reverberation a
64  /// more "grainy" character that is especially noticeable with percussive sound sources. If you set a diffusion value of
65  /// 0.0, the later reverberation sounds like a succession of distinct echoes. @n @n Range: 0.0 to 1.0
67  /// @brief The master volume control for the reflected sound.
68  /// @remarks The Reverb Gain property is the master volume control for the reflected sound (both early reflections and reverberation)
69  /// that the reverb effect adds to all sound sources. It sets the maximum amount of reflections and reverberation added to the final
70  /// sound mix. The value of the Reverb Gain property ranges from 1.0 (0db) (the maximum amount) to 0.0 (-100db) (no reflected sound
71  /// at all). @n @n Range: 0.0 to 1.0
73  /// @brief The Reverb Gain High Frequency property.
74  /// @remarks The Reverb Gain HF property further tweaks reflected sound by attenuating it at high frequencies. It controls a low-pass
75  /// filter that applies globally to the reflected sound of all sound sources feeding the particular instance of the reverb effect. The
76  /// value of the Reverb Gain HF property ranges from 1.0 (0db) (no filter) to 0.0 (-100db) (virtually no reflected sound). HF Reference
77  /// sets the frequency at which the value of this property is measured. @n @n Range: 0.0 to 1.0
79  /// @brief The Reverb Gain Low Frequency property.
80  /// @remarks The Reverb Gain LF property further tweaks reflected sound by attenuating it at low frequencies. It controls a high-pass
81  /// filter that applies globally to the reflected sound of all sound sources feeding the particular instance of the reverb effect.
82  /// The value of the Reverb Gain LF property ranges from 1.0 (0db) (no filter) to 0.0 (-100db) (virtually no reflected sound). LF
83  /// Reference sets the frequency at which the value of this property is measured. @n @n Range: 0.0 to 1.0
85  /// @brief The Decay Time property sets the reverberation decay time.
86  /// @remarks It ranges from 0.1 (typically a small room with very dead surfaces) to 20.0 (typically a large room with very live
87  /// surfaces). @n @n Range: 0.1 to 20.0
89  /// @brief The Decay HF Ratio property adjusts the spectral quality of the Decay Time parameter.
90  /// @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
91  /// neutral: the decay time is equal for all frequencies. As Decay HF Ratio increases above 1.0, the high-frequency decay time
92  /// increases so it's longer than the decay time at mid frequencies. You hear a more brilliant reverberation with a longer decay at
93  /// high frequencies. As the Decay HF Ratio value decreases below 1.0, the high-frequency decay time decreases so it's shorter than
94  /// the decay time of the mid frequencies. You hear a more natural reverberation. @n @n Range: 0.1 to 20.0
96  /// @brief The Decay LF Ratio property adjusts the spectral quality of the Decay Time parameter.
97  /// @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
98  /// neutral: the decay time is equal for all frequencies. As Decay LF Ratio increases above 1.0, the low-frequency decay time
99  /// increases so it's longer than the decay time at mid frequencies. You hear a more booming reverberation with a longer decay at
100  /// low frequencies. As the Decay LF Ratio value decreases below 1.0, the low-frequency decay time decreases so it's shorter than
101  /// the decay time of the mid frequencies. You hear a more tinny reverberation. @n @n Range: 0.1 to 20.0
103  /// @brief The Reflections Gain property controls the overall amount of initial reflections relative to the Gain property.
104  /// @remarks The Gain property sets the overall amount of reflected sound: both initial reflections and later reverberation.
105  /// 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
106  /// at all), and is corrected by the value of the Gain property. The Reflections Gain property does not affect the subsequent
107  /// reverberation decay. @n @n Range: 0.0 to 3.16
109  /// @brief 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.
110  /// @remarks It ranges from 0 to 300 milliseconds. You can reduce or increase Reflections Delay to simulate closer or more distant
111  /// reflective surfaces and therefore control the perceived size of the room. @n @n Range: 0.0 to 0.3
113  /// @brief The Reflections Pan property is a 3D vector that controls the spatial distribution of the cluster of early reflections.
114  /// @remarks The direction of this vector controls the global direction of the reflections, whileits magnitude controls how focused
115  /// the reflections are towards this direction. @n @n
116  /// It is important to note that the direction of the vector is interpreted in the
117  /// coordinate system of the user, without taking into account the orientation of the virtual listener. For instance, assuming a
118  /// four-point loudspeaker playback system, setting Reflections Pan to (0, 0, 0.7) means that the reflections are panned to the front
119  /// speaker pair, whereas as setting of (0, 0, -0.7) pans the reflections towards the rear speakers. These vectors follow the a
120  /// left-handed co-ordinate system, unlike OpenAL uses a right-handed co-ordinate system. @n @n
121  /// If the magnitude of Reflections Pan is zero (the default setting), the early reflections come evenly from all directions. As the
122  /// magnitude increases, the reflections become more focused in the direction pointed to by the vector. A magnitude of 1.0 would
123  /// represent the extreme case, where all reflections come from a single direction.
125  /// @brief The Late Reverb Gain property controls the overall amount of later reverberation relative to the Gain property.
126  /// @remarks The Gain property sets the overall amount of both initial reflections and later reverberation. The value of Late Reverb
127  /// Gain ranges from a maximum of 10.0 (+20 dB) to a minimum of 0.0 (-100 dB) (no late reverberation at all). @n @n Range: 0.0 to 10.0
129  /// @brief The Late Reverb Delay property defines the begin time of the late reverberation relative to the time of the initial reflection.
130  /// @remarks It ranges from 0 to 100 milliseconds. Reducing or increasing Late Reverb Delay is useful for simulating a smaller or larger
131  /// room. @n @n Range: 0.0 to 0.1
133  /// @brief The Late Reverb Pan property is a 3D vector that controls the spatial distribution of the late reverb.
134  /// @remarks The direction of this vector controls the global direction of the reverb, while its magnitude controls how focused the reverb
135  /// are towards this direction. The details under Reflections Pan, above, also apply to Late Reverb Pan.
137  /// @brief Echo Time controls the rate at which the cyclic echo repeats itself along the reverberation decay.
138  /// @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
139  /// to clap your hands in this type of environment, you will hear four repetitions of clap per second. @n @n Range: 0.075 to 0.25
141  /// @brief Echo Depth introduces a cyclic echo in the reverberation decay, which will be noticeable with transient or percussive sounds.
142  /// @remarks A larger value of Echo Depth will make this effect more prominent. Together with Reverb Diffusion, Echo Depth will control how
143  /// long the echo effect will persist along the reverberation decay. In a more diffuse environment, echoes will wash out more quickly after
144  /// 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
145  /// 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
146  /// until the end of the reverberation decay. @n @n Range: 0.0 to 1.0
148  /// @brief Modulation Time controls the amount of time to take when applying the set Modulation Depth.
149  /// @remarks This will be most noticeable applied to sources that have tonal color or pitch. You can use this to make some trippy effects!
150  /// Modulation Time controls the speed of the vibrato (rate of periodic changes in pitch). @n @n
151  /// Using this property and ModulationDepth, you can create a pitch modulation in the reverberant sound. @n @n Range: 0.004 to 4.0
153  /// @brief Modulation Depth controls the amount of pitch change.
154  /// @remarks Low values of Diffusion will contribute to reinforcing the perceived effect by reducing the mixing of overlapping reflections in the
155  /// reverberation decay. @n @n
156  /// Using this property and ModulationTime, you can create a pitch modulation in the reverberant sound. @n @n Range: 0.0 to 1.0
158  /// @brief The Air Absorption Gain HF property controls the distance-dependent attenuation at high frequencies caused by the propagation medium.
159  /// @remarks It applies to reflected sound only. You can use Air Absorption Gain HF to simulate sound transmission through foggy air, dry air,
160  /// smoky atmosphere, and so on. The default value is 0.994 (-0.05 dB) per meter, which roughly corresponds to typical condition of atmospheric
161  /// humidity, temperature, and so on. Lowering the value simulates a more absorbent medium (more humidity in the air, for example); raising the
162  /// value simulates a less absorbent medium (dry desert air, for example). @n @n Range: 0.892 to 1.0
164  /// @brief Determines the frequency at which high-frequency effects created by other properties are measured, such as @ref EAXReverbParameters::DecayHFRatio.
165  /// @remarks Note that it is necessary to maintain a factor of at least 10 between this property and @ref EAXReverbParameters::LFReference so that low frequency
166  /// and high-frequency properties can be accurately controlled and will produce independent effects. @n @n Range: 1000.0 to 20000.0
168  /// @brief Determines the frequency at which low-frequency effects created by other properties are measured, such as @ref EAXReverbParameters::DecayLFRatio.
169  /// @remarks Note that it is necessary to maintain a factor of at least 10 between this property and @ref EAXReverbParameters::HFReference so that low frequency
170  /// and high-frequency properties can be accurately controlled and will produce independent effects. @n @n Range: 20.0 to 1000.0
172  /// @brief The Room Rolloff Factor property is one of two methods available to attenuate the reflected sound according to source-listener distance.
173  /// @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
174  /// 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
175  /// equivalent to a scaling factor applied to the quantity specified by ((Source listener distance) - (Reference Distance)). Reference Distance is
176  /// an OpenAL source parameter that specifies the inner border for distance rolloff effects: if the source comes closer to the listener than the
177  /// reference distance, the direct-path sound isn't increased as the source comes closer to the listener, and neither is the reflected sound. @n @n
178  /// The default value of Room Rolloff Factor is 0.0 because, by default, the Effects Extension reverb effect naturally manages the reflected sound
179  /// level automatically for each sound source to simulate the natural rolloff of reflected sound vs. distance in typical rooms. @n @n Range: 0.0 to 10.0
181  /// @brief Whether or not to limit high-frequency decay.
182  /// @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
183  /// property Air Absorption Gain HF. This limit applies regardless of the setting of the property Decay HF Ratio, and the limit doesn't affect
184  /// the value of Decay HF Ratio. This limit, when on, maintains a natural sounding reverberation decay by allowing you to increase the value of
185  /// 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
186  /// time isn't automatically limited.
188 
189  /// @brief Struct constructor.
190  /// @param density @copybrief EAXReverbParameters::Density
191  /// @param diffusion @copybrief EAXReverbParameters::Diffusion
192  /// @param gain @copybrief EAXReverbParameters::Gain
193  /// @param gainHF @copybrief EAXReverbParameters::GainHF
194  /// @param gainLF @copybrief EAXReverbParameters::GainLF
195  /// @param decayTime @copybrief EAXReverbParameters::DecayTime
196  /// @param decayHFRatio @copybrief EAXReverbParameters::DecayHFRatio
197  /// @param decayLFRatio @copybrief EAXReverbParameters::DecayLFRatio
198  /// @param reflectionsGain @copybrief EAXReverbParameters::ReflectionsGain
199  /// @param reflectionsDelay @copybrief EAXReverbParameters::ReflectionsDelay
200  /// @param reflectionsPan @copybrief EAXReverbParameters::ReflectionsPan
201  /// @param lateReverbGain @copybrief EAXReverbParameters::LateReverbGain
202  /// @param lateReverbDelay @copybrief EAXReverbParameters::LateReverbDelay
203  /// @param lateReverbPan @copybrief EAXReverbParameters::LateReverbPan
204  /// @param echoTime @copybrief EAXReverbParameters::EchoTime
205  /// @param echoDepth @copybrief EAXReverbParameters::EchoDepth
206  /// @param modulationTime @copybrief EAXReverbParameters::ModulationTime
207  /// @param modulationDepth @copybrief EAXReverbParameters::ModulationDepth
208  /// @param airAbsorptionGainHF @copybrief EAXReverbParameters::AirAbsorptionGainHF
209  /// @param hFReference @copybrief EAXReverbParameters::HFReference
210  /// @param lFReference @copybrief EAXReverbParameters::LFReference
211  /// @param roomRolloffFactor @copybrief EAXReverbParameters::RoomRolloffFactor
212  /// @param decayHFLimit @copybrief EAXReverbParameters::DecayHFLimit
214  Real density = 1.0f,
215  Real diffusion = 1.0f,
216  Real gain = 0.32f,
217  Real gainHF = 0.89f,
218  Real gainLF = 0.0f,
219  Real decayTime = 1.49f,
220  Real decayHFRatio = 0.83f,
221  Real decayLFRatio = 1.0f,
222  Real reflectionsGain = 0.05f,
223  Real reflectionsDelay = 0.007f,
224  Vector3 reflectionsPan = Vector3(0.0f, 0.0f, 0.0f),
225  Real lateReverbGain = 1.26f,
226  Real lateReverbDelay = 0.011f,
227  Vector3 lateReverbPan = Vector3(0.0f, 0.0f, 0.0f),
228  Real echoTime = 0.25f,
229  Real echoDepth = 0.0f,
230  Real modulationTime = 0.25f,
231  Real modulationDepth = 0.0f,
232  Real airAbsorptionGainHF = 0.994f,
233  Real hFReference = 5000.0f,
234  Real lFReference = 250.0f,
235  Real roomRolloffFactor = 0.0f,
236  bool decayHFLimit = true) :
237  Density(density), Diffusion(diffusion), Gain(gain), GainHF(gainHF), GainLF(gainLF),
238  DecayTime(decayTime), DecayHFRatio(decayHFRatio), DecayLFRatio(decayLFRatio),
239  ReflectionsGain(reflectionsGain), ReflectionsDelay(reflectionsDelay),
240  ReflectionsPan(reflectionsPan), LateReverbGain(lateReverbGain),
241  LateReverbDelay(lateReverbDelay), LateReverbPan(lateReverbPan),
242  EchoTime(echoTime), EchoDepth(echoDepth),ModulationTime(modulationTime),
243  ModulationDepth(modulationDepth), AirAbsorptionGainHF(airAbsorptionGainHF),
244  HFReference(hFReference), LFReference(lFReference),
245  RoomRolloffFactor(roomRolloffFactor), DecayHFLimit(decayHFLimit) { }
246  };//EAXReverbParameters
247 
248  ///////////////////////////////////////////////////////////////////////////////
249  /// @brief This is a struct containing all the parameters needed to describe a Reverb effect.
250  /// @details This is similar in purpose to the @ref EAXReverbParameters struct, but has fewer parameters/features enabling it
251  /// to run on more limited hardware. Using this may be a good fallback option for audio reverb effects.
252  ///////////////////////////////////////
254  {
255  /// @brief Reverb Modal Density controls the coloration of the late reverb.
256  /// @remarks Lowering the value adds more coloration to the late reverb. @n @n Range: 0.0 to 1.0
258  /// @brief The Reverb Diffusion property controls the echo density in the reverberation decay.
259  /// @remarks It's set by default to 1.0, which provides the highest density. Reducing diffusion gives the reverberation a more "grainy" character
260  /// that is especially noticeable with percussive sound sources. If you set a diffusion value of 0.0, the later reverberation sounds like a
261  /// succession of distinct echoes. @n @n Range: 0.0 to 1.0
263  /// @brief The Reverb Gain property is the master volume control for the reflected sound that the reverb effect adds to all sound sources.
264  /// @remarks It sets the maximum amount of reflections and reverberation added to the final sound mix. The value of the Reverb Gain property
265  /// ranges from 1.0 (0db) (the maximum amount) to 0.0 (-100db) (no reflected sound at all). @n @n Range: 0.0 to 1.0
267  /// @brief The Reverb Gain HF property further tweaks reflected sound by attenuating it at high frequencies.
268  /// @remarks It controls a low-pass filter that applies globally to the reflected sound of all sound sources feeding the particular instance of
269  /// 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).
270  /// @n @n Range: 0.0 to 1.0
272  /// @brief The Decay Time property sets the reverberation decay time.
273  /// @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).
274  /// @n @n Range: 0.1 to 20.0
276  /// @brief The Decay HF Ratio property sets the spectral quality of the Decay Time parameter.
277  /// @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
278  /// 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
279  /// the decay time at low frequencies. You hear a more brilliant reverberation with a longer decay at high frequencies. As the Decay HF Ratio
280  /// value decreases below 1.0, the high-frequency decay time decreases so it's shorter than the decay time of the low frequencies. You hear a
281  /// more natural reverberation. @n @n Range: 0.1 to 2.0
283  /// @brief The Reflections Gain property controls the overall amount of initial reflections relative to the Gain property.
284  /// @remarks The Gain property sets the overall amount of reflected sound: both initial reflections and later reverberation. The value of Reflections
285  /// 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
286  /// property. The Reflections Gain property does not affect the subsequent reverberation decay. @n @n Range: 0.0 to 3.16
288  /// @brief 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.
289  /// @remarks It ranges from 0 to 300 milliseconds. You can reduce or increase Reflections Delay to simulate closer or more distant reflective surfaces and
290  /// therefore control the perceived size of the room. @n @n Range: 0.0 to 0.3
292  /// @brief The Late Reverb Gain property controls the overall amount of later reverberation relative to the Gain property.
293  /// @remarks The Gain property sets the overall amount of both initial reflections and later reverberation. The value of Late Reverb Gain ranges
294  /// from a maximum of 10.0 (+20 dB) to a minimum of 0.0 (-100 dB) (no late reverberation at all). @n @n Range: 0.0 to 10.0
296  /// @brief The Late Reverb Delay property defines the begin time of the late reverberation relative to the time of the initial reflection.
297  /// @remarks It ranges from 0 to 100 milliseconds. Reducing or increasing Late Reverb Delay is useful for simulating a smaller or larger room.
298  /// @n @n Range: 0.0 to 0.1
300  /// @brief The Air Absorption Gain HF property controls the distance-dependent attenuation at high frequencies caused by the propagation medium.
301  /// @remarks It applies to reflected sound only. You can use Air Absorption Gain HF to simulate sound transmission through foggy air, dry air, smoky
302  /// atmosphere, and so on. The default value is 0.994 (-0.05 dB) per meter, which roughly corresponds to typical condition of atmospheric humidity,
303  /// temperature, and so on. Lowering the value simulates a more absorbent medium (more humidity in the air, for example); raising the value simulates
304  /// a less absorbent medium (dry desert air, for example). @n @n Range: 0.892 to 1.0
306  /// @brief The Room Rolloff Factor property is one of two methods available to attenuate the reflected sound according to source-listener distance.
307  /// @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
308  /// 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
309  /// scaling factor applied to the quantity specified by ((Source listener distance) - (Reference Distance)). Reference Distance is an OpenAL source
310  /// parameter that specifies the inner border for distance rolloff effects: if the source comes closer to the listener than the reference distance, the
311  /// direct-path sound isn't increased as the source comes closer to the listener, and neither is the reflected sound. @n @n
312  /// The default value of Room Rolloff Factor is 0.0 because, by default, the Effects Extension reverb effect naturally manages the reflected sound level
313  /// automatically for each sound source to simulate the natural rolloff of reflected sound vs. distance in typical rooms. @n @n Range: 0.0 to 10.0
315  /// @brief Whether or not to limit high-frequency decay.
316  /// @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
317  /// 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
318  /// 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
319  /// getting an unnaturally long decay time at high frequencies. If this flag is set to false, high-frequency decay time isn't automatically limited.
321 
322  /// @brief Struct constructor.
323  /// @param density @copybrief ReverbParameters::Density
324  /// @param diffusion @copybrief ReverbParameters::Diffusion
325  /// @param gain @copybrief ReverbParameters::Gain
326  /// @param gainHF @copybrief ReverbParameters::GainHF
327  /// @param decayTime @copybrief ReverbParameters::DecayTime
328  /// @param decayHFRatio @copybrief ReverbParameters::DecayHFRatio
329  /// @param reflectionsGain @copybrief ReverbParameters::ReflectionsGain
330  /// @param reflectionsDelay @copybrief ReverbParameters::ReflectionsDelay
331  /// @param lateReverbGain @copybrief ReverbParameters::LateReverbGain
332  /// @param lateReverbDelay @copybrief ReverbParameters::LateReverbDelay
333  /// @param airAbsorptionGainHF @copybrief ReverbParameters::AirAbsorptionGainHF
334  /// @param roomRolloffFactor @copybrief ReverbParameters::RoomRolloffFactor
335  /// @param decayHFLimit @copybrief ReverbParameters::DecayHFLimit
337  Real density = 1.0f,
338  Real diffusion = 1.0f,
339  Real gain = 0.32f,
340  Real gainHF = 0.89f,
341  Real decayTime = 1.49f,
342  Real decayHFRatio = 0.83f,
343  Real reflectionsGain = 0.05f,
344  Real reflectionsDelay = 0.007f,
345  Real lateReverbGain = 1.26f,
346  Real lateReverbDelay = 0.011f,
347  Real airAbsorptionGainHF = 0.994f,
348  Real roomRolloffFactor = 0.0f,
349  bool decayHFLimit = true) :
350  Density(density), Diffusion(diffusion), Gain(gain), GainHF(gainHF),
351  DecayTime(decayTime), DecayHFRatio(decayHFRatio),
352  ReflectionsGain(reflectionsGain), ReflectionsDelay(reflectionsDelay),
353  LateReverbGain(lateReverbGain), LateReverbDelay(lateReverbDelay),
354  AirAbsorptionGainHF(airAbsorptionGainHF), RoomRolloffFactor(roomRolloffFactor),
355  DecayHFLimit(decayHFLimit) { }
356  };//ReverbParameters
357 
358  ///////////////////////////////////////////////////////////////////////////////
359  /// @brief This is a struct containing all the parameters needed to describe a Chorus effect.
360  /// @details The chorus effect essentially replays the input audio accompanied by another slightly delayed version of the signal, creating a "doubling" effect.
361  ///////////////////////////////////////
363  {
364  /// @enum ChorusWaveform
365  /// @brief The shape of the wave if it were viewed on an oscillator.
367  {
368  ECW_Sinusoid, ///< A curved oscillation with smoother transitions at peak frequencies.
369  ECW_Triangle ///< A linear oscillation with rapid transitions at peak frequencies.
370  };
371 
372  /// @brief This property sets the waveform shape of the Low Frequency Oscillation that controls the delay time of the delayed signals.
374  /// @brief This property controls the phase difference between the left and rightLow Frequency Oscillation's.
375  /// @remarks At zero degrees the two LFOs are synchronized. Use this parameter to create the illusion of an expanded stereo field of the output signal.
376  /// @n @n Range: -180 to 180
378  /// @brief This property sets the modulation rate of the Low Frequency Oscillation that controls the delay time of the delayed signals.
379  /// @remarks Range: 0.0 to 10.0
381  /// @brief This property controls the amount by which the delay time is modulated by the Low Frequency Oscillation.
382  /// @remarks Range: 0.0 to 1.0
384  /// @brief This property controls the amount of processed signal that is fed back to the input of the chorus effect.
385  /// @remarks Negative values will reverse the phase of the feedback signal. At full magnitude the identical sample will repeat endlessly. At lower
386  /// magnitudes the sample will repeat and fade out over time. Use this parameter to create a "cascading" chorus effect. @n @n Range: -1.0 to 1.0
388  /// @brief This property controls the average amount of time the sample is delayed before it is played back.
389  /// @remarks This property can also control with feedback, the amount of time between iterations of the sample. Larger values lower the pitch. Smaller values
390  /// make the chorus sound like a flanger, but with different frequency characteristics. @n @n Range: 0.0 to 0.016
392 
393  /// @brief Struct constructor.
394  /// @param waveform @copybrief ChorusParameters::Waveform
395  /// @param phase @copybrief ChorusParameters::Phase
396  /// @param rate @copybrief ChorusParameters::Rate
397  /// @param depth @copybrief ChorusParameters::Depth
398  /// @param feedback @copybrief ChorusParameters::Feedback
399  /// @param delay @copybrief ChorusParameters::Delay
401  ChorusWaveform waveform = ECW_Triangle,
402  Integer phase = 90,
403  Real rate = 1.1f,
404  Real depth = 0.1f,
405  Real feedback = 0.25f,
406  Real delay = 0.016f) :
407  Waveform(waveform), Phase(phase), Rate(rate), Depth(depth), Feedback(feedback),
408  Delay(delay) { }
409  };// ©horusParameters
410 
411  ///////////////////////////////////////////////////////////////////////////////
412  /// @brief This is a struct containing all the parameters needed to describe a Distortion effect.
413  /// @details The distortion effect simulates turning up (overdriving) the gain stage on a guitar amplifier or adding a distortion pedal to an instrument's output.
414  ///////////////////////////////////////
416  {
417  /// @brief This property controls the shape of the distortion.
418  /// @remarks The higher the value for Edge, the "dirtier" and "fuzzier" the effect. @n @n Range: 0.0 to 1.0
420  /// @brief This property allows you to attenuate the distorted sound.
421  /// @remarks Range: 0.01 to 1.0
423  /// @brief Input signal can have a low pass filter applied, to limit the amount of high frequency signal feeding into the distortion effect.
424  /// @remarks Range: 80.0 to 24000.0
426  /// @brief This property controls the frequency at which the post-distortion attenuation (Gain) is active.
427  /// @remarks Range: 80.0 to 24000.0
429  /// @brief This property controls the bandwidth of the post-distortion attenuation.
430  /// @remarks Range: 80.0 to 24000.0
432 
433  /// @brief Struct constructor.
434  /// @param edge @copybrief DistortionParameters::Edge
435  /// @param gain @copybrief DistortionParameters::Gain
436  /// @param lowpassCutoff @copybrief DistortionParameters::LowpassCutoff
437  /// @param eqCenter @copybrief DistortionParameters::EqCenter
438  /// @param eqBandwidth @copybrief DistortionParameters::EqBandwidth
440  Real edge = 0.2f,
441  Real gain = 0.05f,
442  Real lowpassCutoff = 8000.0f,
443  Real eqCenter = 3600.0f,
444  Real eqBandwidth = 3600.0f) :
445  Edge(edge), Gain(gain), LowpassCutoff(lowpassCutoff), EqCenter(eqCenter),
446  EqBandwidth(eqBandwidth) { }
447  };//DistortionParameters
448 
449  ///////////////////////////////////////////////////////////////////////////////
450  /// @brief This is a struct containing all the parameters needed to describe an echo effect.
451  /// @details The echo effect generates discrete, delayed instances of the input signal.
452  ///////////////////////////////////////
454  {
455  /// @brief This property controls the delay between the original sound and the first "tap", or echo instance.
456  /// @remarks Range: 0.0 to 0.207
458  /// @brief This property controls the delay between the first "tap" and the second "tap".
459  /// @remarks Range: 0.0 to 0.404
461  /// @brief This property controls the amount of high frequency damping applied to each echo.
462  /// @remarks As the sound is subsequently fed back for further echoes, damping results in an echo which progressively gets softer in tone as well as
463  /// intensity. @n @n Range: 0.0 to 0.99
465  /// @brief This property controls the amount of feedback the output signal fed back into the input.
466  /// @remarks Use this parameter to create "cascading" echoes. At full magnitude, the identical sample will repeat endlessly. Below full magnitude,
467  /// the sample will repeat and fade. @n @n Range: 0.0 to 1.0
469  /// @brief This property controls how hard panned the individual echoes are.
470  /// @remarks With a value of 1.0, the first "tap" will be panned hard left, and the second "tap" hard right. A value of -1.0 gives the opposite result.
471  /// Settings nearer to 0.0 result in less emphasized panning. @n @n Range: -1.0 to 1.0
473 
474  /// @brief Struct constructor.
475  /// @param delay @copybrief EchoParameters::Delay
476  /// @param lRDelay @copybrief EchoParameters::LRDelay
477  /// @param damping @copybrief EchoParameters::Damping
478  /// @param feedback @copybrief EchoParameters::Feedback
479  /// @param spread @copybrief EchoParameters::Spread
481  Real delay = 0.1f,
482  Real lRDelay = 0.1f,
483  Real damping = 0.5f,
484  Real feedback = 0.5f,
485  Real spread = -1.0f) :
486  Delay(delay), LRDelay(lRDelay), Damping(damping), Feedback(feedback),
487  Spread(spread) { }
488  };//EchoParameters
489 
490  ///////////////////////////////////////////////////////////////////////////////
491  /// @brief This is a struct containing all the parameters needed to describe an flanger effect.
492  /// @details The flanger effect creates a "tearing" or "whooshing" sound (like a jet flying overhead).
493  ///////////////////////////////////////
495  {
496  /// @enum FlangerWaveform
497  /// @brief The shape of the wave if it were viewed on an oscillator.
499  {
500  EFW_Sinusoid, ///< A curved oscillation with smoother transitions at peak frequencies.
501  EFW_Triangle ///< A linear oscillation with rapid transitions at peak frequencies.
502  };
503 
504  /// @brief Selects the shape of the LFO waveform that controls the amount of the delay of the sampled signal.
506  /// @brief This changes the phase difference between the left and right LFO's.
507  /// @remarks At zero degrees the two LFOs are synchronized. @n @n Range: -180 to 180
509  /// @brief The number of times per second the LFO controlling the amount of delay repeats.
510  /// @remarks Higher values increase the pitch modulation. @n @n Range: 0.0 to 10.0
512  /// @brief The ratio by which the delay time is modulated by the LFO.
513  /// @remarks Use this parameter to increase the pitch modulation. @n @n Range: 0.0 to 1.0
515  /// @brief This is the amount of the output signal level fed back into the effect's input.
516  /// @remarks A negative value will reverse the phase of the feedback signal. Use this parameter to create an "intense metallic" effect. At full magnitude,
517  /// the identical sample will repeat endlessly. At less than full magnitude, the sample will repeat and fade out over time. @n @n Range: -1.0 to 1.0
519  /// @brief The average amount of time the sample is delayed before it is played back; with feedback, the amount of time between iterations of the sample.
520  /// @remarks Range: 0.0 to 0.004
522 
523  /// @brief Struct constructor.
524  /// @param waveform @copybrief FlangerParameters::Waveform
525  /// @param phase @copybrief FlangerParameters::Phase
526  /// @param rate @copybrief FlangerParameters::Rate
527  /// @param depth @copybrief FlangerParameters::Depth
528  /// @param feedback @copybrief FlangerParameters::Feedback
529  /// @param delay @copybrief FlangerParameters::Delay
531  FlangerWaveform waveform = EFW_Triangle,
532  Integer phase = 0,
533  Real rate = 0.27f,
534  Real depth = 1.0f,
535  Real feedback = -0.5f,
536  Real delay = 0.002f) :
537  Waveform(waveform), Phase(phase), Rate(rate), Depth(depth), Feedback(feedback),
538  Delay(delay) { }
539  };//FlangerParameters
540 
541  ///////////////////////////////////////////////////////////////////////////////
542  /// @brief This is a struct containing all the parameters needed to describe a frequency shift effect.
543  /// @details The frequency shifter is a single-sideband modulator, which translates all the component frequencies of the input signal by an equal amount.
544  ///////////////////////////////////////
546  {
547  /// @enum ShiftDirection
548  /// @brief An enum describing the direction the frequency of the input signal will be shifted.
550  {
551  ESD_Down,
552  ESD_Up,
553  ESD_Off
554  };
555 
556  /// @brief This is the carrier frequency.
557  /// @remarks For carrier frequencies below the audible range, the singlesideband modulator may produce phaser effects, spatial effects or a slight pitch-shift.
558  /// As the carrier frequency increases, the timbre of the sound is affected; a piano or guitar note becomes like a bell's chime, and a human voice sounds
559  /// extraterrestrial! @n @n Range: 0.0 to 24000.0
561  /// @brief These select which internal signals are added together to produce the output.
562  /// @remarks Different combinations of values will produce slightly different tonal and spatial effects.
564  /// @brief These select which internal signals are added together to produce the output.
565  /// @remarks Different combinations of values will produce slightly different tonal and spatial effects.
567 
568  /// @brief Struct constructor.
569  /// @param frequency @copybrief FrequencyShiftParameters::Frequency
570  /// @param left @copybrief FrequencyShiftParameters::Left
571  /// @param right @copybrief FrequencyShiftParameters::Right
573  Real frequency = 0.0f,
574  ShiftDirection left = ESD_Down,
575  ShiftDirection right = ESD_Down) :
576  Frequency(frequency), Left(left), Right(right) { }
577  };//FrequencyShiftParameters
578 
579  ///////////////////////////////////////////////////////////////////////////////
580  /// @brief This is a struct containing all the parameters needed to describe a vocal morpher effect.
581  /// @details The vocal morpher consists of a pair of 4-band formant filters, used to impose vocal tract effects upon the input signal.
582  ///////////////////////////////////////
584  {
585  /// @enum MorpherPhoneme
586  /// @brief An enum describing the basic phoneme's of the english language.
588  {
589  EMP_A,
590  EMP_E,
591  EMP_I,
592  EMP_O,
593  EMP_U,
594  EMP_AA,
595  EMP_AE,
596  EMP_AH,
597  EMP_AO,
598  EMP_EH,
599  EMP_ER,
600  EMP_IH,
601  EMP_IY,
602  EMP_UH,
603  EMP_UW,
604  EMP_B,
605  EMP_D,
606  EMP_F,
607  EMP_G,
608  EMP_J,
609  EMP_K,
610  EMP_L,
611  EMP_M,
612  EMP_N,
613  EMP_P,
614  EMP_R,
615  EMP_S,
616  EMP_T,
617  EMP_V,
618  EMP_Z
619  };
620 
621  /// @enum MorpherWaveform
622  /// @brief The shape of the wave if it were viewed on an oscillator.
624  {
625  EMW_Sinusoid, ///< A curved oscillation with smoother transitions at peak frequencies.
626  EMW_Triangle, ///< A linear oscillation with rapid transitions at peak frequencies.
627  EMW_Saw ///< A curved upward oscillation with a rapid drop at it's peak frequency.
628  };
629 
630  /// @brief The source phoneme.
631  /// @remarks If both parameters are set to the same phoneme, that determines the filtering effect that will be heard. If these two parameters are set to
632  /// different phonemes, the filtering effect will morph between the two settings at a rate specified by Rate.
634  /// @brief The destination phoneme.
635  /// @remarks If both parameters are set to the same phoneme, that determines the filtering effect that will be heard. If these two parameters are set to
636  /// different phonemes, the filtering effect will morph between the two settings at a rate specified by Rate.
638  /// @brief This is used to adjust the pitch of phoneme filter A in 1-semitone increments.
639  /// @remarks Range: -24 to 24
641  /// @brief This is used to adjust the pitch of phoneme filter B in 1-semitone increments.
642  /// @remarks Range: -24 to 24
644  /// @brief This controls the shape of the low-frequency oscillator used to morph between the two phoneme filters.
646  /// @brief This controls the frequency of the low-frequency oscillator used to morph between the two phoneme filters.
647  /// @remarks Range: 0.0 to 10.0
649 
650  /// @brief Struct constructor.
651  /// @param phonemeA @copybrief VocalMorpherParamters::PhonemeA
652  /// @param phonemeB @copybrief VocalMorpherParamters::PhonemeB
653  /// @param phonemeACoarseTune @copybrief VocalMorpherParamters::PhonemeACoarseTune
654  /// @param phonemeBCoarseTune @copybrief VocalMorpherParamters::PhonemeBCoarseTune
655  /// @param waveform @copybrief VocalMorpherParamters::Waveform
656  /// @param rate @copybrief VocalMorpherParamters::Rate
658  MorpherPhoneme phonemeA = EMP_A,
659  MorpherPhoneme phonemeB = EMP_ER,
660  Integer phonemeACoarseTune = 0,
661  Integer phonemeBCoarseTune = 0,
662  MorpherWaveform waveform = EMW_Sinusoid,
663  Real rate = 1.41f) :
664  PhonemeA(phonemeA), PhonemeB(phonemeB), PhonemeACoarseTune(phonemeACoarseTune),
665  PhonemeBCoarseTune(phonemeBCoarseTune), Waveform(waveform), Rate(rate) { }
666  };//VocalMorpherParameters
667 
668  ///////////////////////////////////////////////////////////////////////////////
669  /// @brief This is a struct containing all the parameters needed to describe a pitch shift effect.
670  /// @details The pitch shifter applies time-invariant pitch shifting to the input signal, over a one octave range and controllable at a semi-tone and cent resolution.
671  ///////////////////////////////////////
673  {
674  /// @brief This sets the number of semitones by which the pitch is shifted.
675  /// @remarks There are 12 semitones per octave. Negative values create a downwards shift in pitch, positive values pitch the sound upwards. @n @n Range: -12 to 12
677  /// @brief This sets the number of cents between Semitones a pitch is shifted.
678  /// @remarks A Cent is 1/100th of a Semitone. Negative values create a downwards shift in pitch, positive values pitch the sound upwards. @n @n Range: -50 to 50
680 
681  /// @brief Struct constructor.
682  /// @param coarseTune @copybrief PitchShifterParameters::CoarseTune
683  /// @param fineTune @copybrief PitchShifterParameters::FineTune
685  Integer coarseTune = 12,
686  Integer fineTune = 0) :
687  CoarseTune(coarseTune), FineTune(fineTune) { }
688  };//PitchShifterParameters
689 
690  ///////////////////////////////////////////////////////////////////////////////
691  /// @brief This is a struct containing all the parameters needed to describe a ring modulation effect.
692  /// @details The ring modulator multiplies an input signal by a carrier signal in the time domain, resulting in tremolo or inharmonic effects.
693  ///////////////////////////////////////
695  {
696  /// @enum ModulatorWaveform
697  /// @brief The shape of the wave if it were viewed on an oscillator.
699  {
700  EMW_Sinusoid, ///< A curved oscillation with smoother transitions at peak frequencies.
701  EMW_Saw, ///< A curved upward oscillation with a rapid drop at it's peak frequency.
702  EMW_Square ///< A digital waveform that only expresses the highest and lowest frequencies. Effectively "on" or "off".
703  };
704 
705  /// @brief This is the frequency of the carrier signal.
706  /// @remarks If the carrier signal is slowly varying (less than 20 Hz), the result is a tremolo (slow amplitude variation) effect. If the carrier signal is
707  /// in the audio range, audible upper and lower sidebands begin to appear, causing an inharmonic effect. The carrier signal itself is not heard in the output.
708  /// @n @n Range: 0.0 to 8000.0
710  /// @brief This controls the cutoff frequency at which the input signal is high-pass filtered before being ring modulated.
711  /// @remarks If the cutoff frequency is 0, the entire signal will be ring modulated. If the cutoff frequency is high, very little of the signal (only those
712  /// parts above the cutoff) will be ring modulated. @n @n Range: 0.0 to 24000.0
714  /// @brief This controls which waveform is used as the carrier signal.
715  /// @remarks Traditional ring modulator and tremolo effects generally use a sinusoidal carrier. Sawtooth and square waveforms are may cause unpleasant aliasing.
717 
718  /// @brief Struct constructor.
719  /// @param frequency @copybrief RingModulatorParameters::Frequency
720  /// @param highPassCutoff @copybrief RingModulatorParameters::HighPassCutoff
721  /// @param waveform @copybrief RingModulatorParameters::Waveform
723  Real frequency = 440.0f,
724  Real highPassCutoff = 800.0f,
725  ModulatorWaveform waveform = EMW_Sinusoid) :
726  Frequency(frequency), HighPassCutoff(highPassCutoff), Waveform(waveform) { }
727  };//RingModulatorParameters
728 
729  ///////////////////////////////////////////////////////////////////////////////
730  /// @brief This is a struct containing all the parameters needed to describe an Auto-Wah effect.
731  /// @details The Auto-wah effect emulates the sound of a wah-wah pedal used with an electric guitar, or a mute on a brass instrument.
732  ///////////////////////////////////////
734  {
735  /// @brief This property controls the time the filtering effect takes to sweep from minimum to maximum center frequency when it is triggered by input signal.
736  /// @remarks Range: 0.0001 to 1.0
738  /// @brief This property controls the time the filtering effect takes to sweep from maximum back to base center frequency, when the input signal ends.
739  /// @remarks Range: 0.0001 to 1.0
741  /// @brief This property controls the resonant peak, sometimes known as emphasis or Q, of the auto-wah band-pass filter.
742  /// @remarks Resonance occurs when the effect boosts the frequency content of the sound around the point at which the filter is working. A high value promotes
743  /// a highly resonant, sharp sounding effect. @n @n Range: 2.0 to 1000.0
745  /// @brief This property controls the input signal level at which the band-pass filter will be fully opened.
746  /// @remarks Range: 0.00003 to 31621.0
748 
749  /// @brief Struct constructor.
750  /// @param attackTime @copybrief AutowahParameters::AttackTime
751  /// @param releaseTime @copybrief AutowahParameters::ReleaseTime
752  /// @param resonance @copybrief AutowahParameters::Resonance
753  /// @param peakGain @copybrief AutowahParameters::PeakGain
755  Real attackTime = 0.06f,
756  Real releaseTime = 0.06f,
757  Real resonance = 1000.0f,
758  Real peakGain = 11.22f) :
759  AttackTime(attackTime), ReleaseTime(releaseTime), Resonance(resonance),
760  PeakGain(peakGain) { }
761  };//AutowahParameters
762 
763  ///////////////////////////////////////////////////////////////////////////////
764  /// @brief This is a struct containing all the parameters needed to describe a compressor effect.
765  /// @details The Automatic Gain Control effect performs the same task as a studio compressor, evening out the audio dynamic range of an input sound.
766  ///////////////////////////////////////
768  {
769  /// @brief The Compressor can only be switched on and off – it cannot be adjusted.
770  bool Active;
771 
772  /// @brief Struct constructor.
773  /// @param active @copybrief CompressorParameters::Active
775  bool active = true) :
776  Active(active) { }
777  };// ©ompressorParameters
778 
779  ///////////////////////////////////////////////////////////////////////////////
780  /// @brief This is a struct containing all the parameters needed to describe an equalizer effect.
781  /// @details The OpenAL Effects Extension EQ is very flexible, providing tonal control over four different adjustable frequency ranges.
782  ///////////////////////////////////////
784  {
785  /// @brief This property controls amount of cut or boost on the low frequency range.
786  /// @remarks Range: 0.126 to 7.943
788  /// @brief This property controls the low frequency below which signal will be cut off.
789  /// @remarks Range: 50.0 to 800.0
791  /// @brief This property allows you to cut / boost signal on the "mid1" range.
792  /// @remarks Range: 0.126 to 7.943
794  /// @brief This property sets the center frequency for the "mid1" range.
795  /// @remarks Range: 200.0 to 3000.0
797  /// @brief This property controls the width of the "mid1" range.
798  /// @remarks Range: 0.01 to 1.0
800  /// @brief This property allows you to cut / boost signal on the "mid2" range.
801  /// @remarks Range: 0.126 to 7.943
803  /// @brief This property sets the center frequency for the "mid2" range.
804  /// @remarks Range: 1000.0 to 8000.0
806  /// @brief This property controls the width of the "mid2" range.
807  /// @remarks Range: 0.01 to 1.0
809  /// @brief This property allows you to cut / boost the signal at high frequencies.
810  /// @remarks Range: 0.126 to 7.943
812  /// @brief This property controls the high frequency above which signal will be cut off.
813  /// @remarks Range: 4000.0 to 16000.0
815 
816  /// @brief Struct constructor.
817  /// @param lowGain @copybrief EqualizerParameters::LowGain
818  /// @param lowCutoff @copybrief EqualizerParameters::LowCutoff
819  /// @param mid1Gain @copybrief EqualizerParameters::Mid1Gain
820  /// @param mid1Center @copybrief EqualizerParameters::Mid1Center
821  /// @param mid1Width @copybrief EqualizerParameters::Mid1Width
822  /// @param mid2Gain @copybrief EqualizerParameters::Mid2Gain
823  /// @param mid2Center @copybrief EqualizerParameters::Mid2Center
824  /// @param mid2Width @copybrief EqualizerParameters::Mid2Width
825  /// @param highGain @copybrief EqualizerParameters::HighGain
826  /// @param highCutoff @copybrief EqualizerParameters::HighCutoff
828  Real lowGain = 1.0f,
829  Real lowCutoff = 200.0f,
830  Real mid1Gain = 1.0f,
831  Real mid1Center = 500.0f,
832  Real mid1Width = 1.0f,
833  Real mid2Gain = 1.0f,
834  Real mid2Center = 3000.0f,
835  Real mid2Width = 1.0f,
836  Real highGain = 1.0f,
837  Real highCutoff = 6000.0f) :
838  LowGain(lowGain), LowCutoff(lowCutoff), Mid1Gain(mid1Gain),
839  Mid1Center(mid1Center), Mid1Width(mid1Width), Mid2Gain(mid2Gain),
840  Mid2Center(mid2Center), Mid2Width(mid2Width), HighGain(highGain),
841  HighCutoff(highCutoff) { }
842  };//EqualizerParameters
843  }//Audio
844 }//Mezzanine
845 
846 #endif