1 //          Copyright 2018 - 2021 Michael D. Parker
2 // Distributed under the Boost Software License, Version 1.0.
3 //    See accompanying file LICENSE_1_0.txt or copy at
4 //          http://www.boost.org/LICENSE_1_0.txt)
5 
6 module bindbc.openal.efx;
7 import bindbc.openal.types;
8 
9 version(AL_EFX):
10 
11 enum ALC_EXT_EFX_NAME        = "ALC_EXT_EFX";
12 enum ALC_EFX_MAJOR_VERSION   = 0x20001;
13 enum ALC_EFX_MINOR_VERSION   = 0x20002;
14 enum ALC_MAX_AUXILIARY_SENDS = 0x20003;
15 
16 ///Listener Properties
17 enum AL_METERS_PER_UNIT      = 0x20004;
18 
19 ///Source Properties
20 enum AL_DIRECT_FILTER                     = 0x20005;
21 enum AL_AUXILIARY_SEND_FILTER             = 0x20006;
22 enum AL_AIR_ABSORPTION_FACTOR             = 0x20007;
23 enum AL_ROOM_ROLLOFF_FACTOR               = 0x20008;
24 enum AL_CONE_OUTER_GAINHF                 = 0x20009;
25 enum AL_DIRECT_FILTER_GAINHF_AUTO         = 0x2000A;
26 enum AL_AUXILIARY_SEND_FILTER_GAIN_AUTO   = 0x2000B;
27 enum AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO = 0x2000C;
28 
29 
30 ///Effect Properties
31 
32 ///Reverb effect parameters
33 enum : ALuint
34 {
35     AL_REVERB_DENSITY                = 0x0001,
36     AL_REVERB_DIFFUSION              = 0x0002,
37     AL_REVERB_GAIN                   = 0x0003,
38     AL_REVERB_GAINHF                 = 0x0004,
39     AL_REVERB_DECAY_TIME             = 0x0005,
40     AL_REVERB_DECAY_HFRATIO          = 0x0006,
41     AL_REVERB_REFLECTIONS_GAIN       = 0x0007,
42     AL_REVERB_REFLECTIONS_DELAY      = 0x0008,
43     AL_REVERB_LATE_REVERB_GAIN       = 0x0009,
44     AL_REVERB_LATE_REVERB_DELAY      = 0x000A,
45     AL_REVERB_AIR_ABSORPTION_GAINHF  = 0x000B,
46     AL_REVERB_ROOM_ROLLOFF_FACTOR    = 0x000C,
47     AL_REVERB_DECAY_HFLIMIT          = 0x000D,
48 }
49 
50 ///EAX Reverb effect parameters
51 enum : ALuint
52 {
53     AL_EAXREVERB_DENSITY               = 0x0001,
54     AL_EAXREVERB_DIFFUSION             = 0x0002,
55     AL_EAXREVERB_GAIN                  = 0x0003,
56     AL_EAXREVERB_GAINHF                = 0x0004,
57     AL_EAXREVERB_GAINLF                = 0x0005,
58     AL_EAXREVERB_DECAY_TIME            = 0x0006,
59     AL_EAXREVERB_DECAY_HFRATIO         = 0x0007,
60     AL_EAXREVERB_DECAY_LFRATIO         = 0x0008,
61     AL_EAXREVERB_REFLECTIONS_GAIN      = 0x0009,
62     AL_EAXREVERB_REFLECTIONS_DELAY     = 0x000A,
63     AL_EAXREVERB_REFLECTIONS_PAN       = 0x000B,
64     AL_EAXREVERB_LATE_REVERB_GAIN      = 0x000C,
65     AL_EAXREVERB_LATE_REVERB_DELAY     = 0x000D,
66     AL_EAXREVERB_LATE_REVERB_PAN       = 0x000E,
67     AL_EAXREVERB_ECHO_TIME             = 0x000F,
68     AL_EAXREVERB_ECHO_DEPTH            = 0x0010,
69     AL_EAXREVERB_MODULATION_TIME       = 0x0011,
70     AL_EAXREVERB_MODULATION_DEPTH      = 0x0012,
71     AL_EAXREVERB_AIR_ABSORPTION_GAINHF = 0x0013,
72     AL_EAXREVERB_HFREFERENCE           = 0x0014,
73     AL_EAXREVERB_LFREFERENCE           = 0x0015,
74     AL_EAXREVERB_ROOM_ROLLOFF_FACTOR   = 0x0016,
75     AL_EAXREVERB_DECAY_HFLIMIT         = 0x0017
76 }
77 
78 /* Chorus effect parameters */
79 enum : ALuint
80 {
81     AL_CHORUS_WAVEFORM =  0x0001,
82     AL_CHORUS_PHASE    =  0x0002,
83     AL_CHORUS_RATE     =  0x0003,
84     AL_CHORUS_DEPTH    =  0x0004,
85     AL_CHORUS_FEEDBACK =  0x0005,
86     AL_CHORUS_DELAY    =  0x0006
87 }
88 
89 ///Distortion effect parameters
90 enum : ALuint
91 {
92     AL_DISTORTION_EDGE                       = 0x0001,
93     AL_DISTORTION_GAIN                       = 0x0002,
94     AL_DISTORTION_LOWPASS_CUTOFF             = 0x0003,
95     AL_DISTORTION_EQCENTER                   = 0x0004,
96     AL_DISTORTION_EQBANDWIDTH                = 0x0005,
97 }
98 
99 ///Echo effect parameters
100 enum : ALuint
101 {
102     AL_ECHO_DELAY                            = 0x0001,
103     AL_ECHO_LRDELAY                          = 0x0002,
104     AL_ECHO_DAMPING                          = 0x0003,
105     AL_ECHO_FEEDBACK                         = 0x0004,
106     AL_ECHO_SPREAD                           = 0x0005
107 }
108 
109 /* Flanger effect parameters */
110 enum : ALuint
111 {
112     AL_FLANGER_WAVEFORM                      = 0x0001,
113     AL_FLANGER_PHASE                         = 0x0002,
114     AL_FLANGER_RATE                          = 0x0003,
115     AL_FLANGER_DEPTH                         = 0x0004,
116     AL_FLANGER_FEEDBACK                      = 0x0005,
117     AL_FLANGER_DELAY                         = 0x0006
118 }
119 
120 
121 /* Frequency shifter effect parameters */
122 enum : ALuint
123 {
124     AL_FREQUENCY_SHIFTER_FREQUENCY           = 0x0001,
125     AL_FREQUENCY_SHIFTER_LEFT_DIRECTION      = 0x0002,
126     AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION     = 0x0003
127 }
128 
129 /* Vocal morpher effect parameters */
130 
131 enum : ALuint
132 {
133     AL_VOCAL_MORPHER_PHONEMEA                = 0x0001,
134     AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING  = 0x0002,
135     AL_VOCAL_MORPHER_PHONEMEB                = 0x0003,
136     AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING  = 0x0004,
137     AL_VOCAL_MORPHER_WAVEFORM                = 0x0005,
138     AL_VOCAL_MORPHER_RATE                    = 0x0006
139 }
140 
141 /* Pitchshifter effect parameters */
142 
143 enum : ALuint
144 {
145     AL_PITCH_SHIFTER_COARSE_TUNE             = 0x0001,
146     AL_PITCH_SHIFTER_FINE_TUNE               = 0x0002
147 }
148 
149 /* Ringmodulator effect parameters */
150 enum : ALuint
151 {
152     AL_RING_MODULATOR_FREQUENCY              = 0x0001,
153     AL_RING_MODULATOR_HIGHPASS_CUTOFF        = 0x0002,
154     AL_RING_MODULATOR_WAVEFORM               = 0x0003
155 }
156 
157 /* Autowah effect parameters */
158 enum : ALuint
159 {
160     AL_AUTOWAH_ATTACK_TIME                   = 0x0001,
161     AL_AUTOWAH_RELEASE_TIME                  = 0x0002,
162     AL_AUTOWAH_RESONANCE                     = 0x0003,
163     AL_AUTOWAH_PEAK_GAIN                     = 0x0004
164 }
165 
166 /* Compressor effect parameters */
167 enum : ALuint
168 {
169     AL_COMPRESSOR_ONOFF                      = 0x0001
170 }
171 
172 /* Equalizer effect parameters */
173 enum : ALuint
174 {
175     AL_EQUALIZER_LOW_GAIN                    = 0x0001,
176     AL_EQUALIZER_LOW_CUTOFF                  = 0x0002,
177     AL_EQUALIZER_MID1_GAIN                   = 0x0003,
178     AL_EQUALIZER_MID1_CENTER                 = 0x0004,
179     AL_EQUALIZER_MID1_WIDTH                  = 0x0005,
180     AL_EQUALIZER_MID2_GAIN                   = 0x0006,
181     AL_EQUALIZER_MID2_CENTER                 = 0x0007,
182     AL_EQUALIZER_MID2_WIDTH                  = 0x0008,
183     AL_EQUALIZER_HIGH_GAIN                   = 0x0009,
184     AL_EQUALIZER_HIGH_CUTOFF                 = 0x000A
185 }
186 
187 /* Effect type */
188 enum AL_EFFECT_FIRST_PARAMETER  = 0x0000;
189 enum AL_EFFECT_LAST_PARAMETER   = 0x8000;
190 enum AL_EFFECT_TYPE             = 0x8001;
191 
192 /* Effect types, used with the AL_EFFECT_TYPE property */
193 enum : ALuint
194 {
195     AL_EFFECT_NULL                           = 0x0000,
196     AL_EFFECT_REVERB                         = 0x0001,
197     AL_EFFECT_CHORUS                         = 0x0002,
198     AL_EFFECT_DISTORTION                     = 0x0003,
199     AL_EFFECT_ECHO                           = 0x0004,
200     AL_EFFECT_FLANGER                        = 0x0005,
201     AL_EFFECT_FREQUENCY_SHIFTER              = 0x0006,
202     AL_EFFECT_VOCAL_MORPHER                  = 0x0007,
203     AL_EFFECT_PITCH_SHIFTER                  = 0x0008,
204     AL_EFFECT_RING_MODULATOR                 = 0x0009,
205     AL_EFFECT_AUTOWAH                        = 0x000A,
206     AL_EFFECT_COMPRESSOR                     = 0x000B,
207     AL_EFFECT_EQUALIZER                      = 0x000C,
208     AL_EFFECT_EAXREVERB                      = 0x8000
209 }
210 
211 /* Auxiliary Effect Slot properties. */
212 enum : ALuint
213 {
214     AL_EFFECTSLOT_EFFECT                     = 0x0001,
215     AL_EFFECTSLOT_GAIN                       = 0x0002,
216     AL_EFFECTSLOT_AUXILIARY_SEND_AUTO        = 0x0003
217 }
218 
219 /* NULL Auxiliary Slot ID to disable a source send. */
220 enum AL_EFFECTSLOT_NULL                       = 0x0000;
221 
222 
223 /* Filter properties. */
224 
225 /* Lowpass filter parameters */
226 enum : ALuint
227 {
228     AL_LOWPASS_GAIN                          = 0x0001,
229     AL_LOWPASS_GAINHF                        = 0x0002
230 }
231 
232 /* Highpass filter parameters */
233 enum : ALuint
234 {
235     AL_HIGHPASS_GAIN                         = 0x0001,
236     AL_HIGHPASS_GAINLF                       = 0x0002
237 }
238 
239 /* Bandpass filter parameters */
240 enum : ALuint
241 {
242     AL_BANDPASS_GAIN                         = 0x0001,
243     AL_BANDPASS_GAINLF                       = 0x0002,
244     AL_BANDPASS_GAINHF                       = 0x0003
245 }
246 
247 /* Filter type */
248 
249 enum AL_FILTER_FIRST_PARAMETER                = 0x0000;
250 enum AL_FILTER_LAST_PARAMETER                 = 0x8000;
251 enum AL_FILTER_TYPE                           = 0x8001;
252 
253 /* Filter types, used with the AL_FILTER_TYPE property */
254 enum : ALuint
255 {
256     AL_FILTER_NULL                           = 0x0000,
257     AL_FILTER_LOWPASS                        = 0x0001,
258     AL_FILTER_HIGHPASS                       = 0x0002,
259     AL_FILTER_BANDPASS                       = 0x0003,
260 }
261 
262 
263 
264 /* Lowpass filter */
265 enum AL_LOWPASS_MIN_GAIN =                      0.0f;
266 enum AL_LOWPASS_MAX_GAIN =                      1.0f;
267 enum AL_LOWPASS_DEFAULT_GAIN =                  1.0f;
268 
269 enum AL_LOWPASS_MIN_GAINHF =                    0.0f;
270 enum AL_LOWPASS_MAX_GAINHF =                    1.0f;
271 enum AL_LOWPASS_DEFAULT_GAINHF =                1.0f;
272 
273 /* Highpass filter */
274 enum AL_HIGHPASS_MIN_GAIN =                     0.0f;
275 enum AL_HIGHPASS_MAX_GAIN =                     1.0f;
276 enum AL_HIGHPASS_DEFAULT_GAIN =                 1.0f;
277 
278 enum AL_HIGHPASS_MIN_GAINLF =                   0.0f;
279 enum AL_HIGHPASS_MAX_GAINLF =                   1.0f;
280 enum AL_HIGHPASS_DEFAULT_GAINLF =               1.0f;
281 
282 /* Bandpass filter */
283 enum AL_BANDPASS_MIN_GAIN =                     0.0f;
284 enum AL_BANDPASS_MAX_GAIN =                     1.0f;
285 enum AL_BANDPASS_DEFAULT_GAIN =                 1.0f;
286 
287 enum AL_BANDPASS_MIN_GAINHF =                   0.0f;
288 enum AL_BANDPASS_MAX_GAINHF =                   1.0f;
289 enum AL_BANDPASS_DEFAULT_GAINHF =               1.0f;
290 
291 enum AL_BANDPASS_MIN_GAINLF =                   0.0f;
292 enum AL_BANDPASS_MAX_GAINLF =                   1.0f;
293 enum AL_BANDPASS_DEFAULT_GAINLF =               1.0f;
294 
295 
296 /* Effect parameter ranges and defaults. */
297 
298 /* Standard reverb effect */
299 enum AL_REVERB_MIN_DENSITY =                    0.0f;
300 enum AL_REVERB_MAX_DENSITY =                    1.0f;
301 enum AL_REVERB_DEFAULT_DENSITY =                1.0f;
302 
303 enum AL_REVERB_MIN_DIFFUSION =                  0.0f;
304 enum AL_REVERB_MAX_DIFFUSION =                  1.0f;
305 enum AL_REVERB_DEFAULT_DIFFUSION =              1.0f;
306 
307 enum AL_REVERB_MIN_GAIN =                       0.0f;
308 enum AL_REVERB_MAX_GAIN =                       1.0f;
309 enum AL_REVERB_DEFAULT_GAIN =                   0.32f;
310 
311 enum AL_REVERB_MIN_GAINHF =                     0.0f;
312 enum AL_REVERB_MAX_GAINHF =                     1.0f;
313 enum AL_REVERB_DEFAULT_GAINHF =                 0.89f;
314 
315 enum AL_REVERB_MIN_DECAY_TIME =                 0.1f;
316 enum AL_REVERB_MAX_DECAY_TIME =                 20.0f;
317 enum AL_REVERB_DEFAULT_DECAY_TIME =             1.49f;
318 
319 enum AL_REVERB_MIN_DECAY_HFRATIO =              0.1f;
320 enum AL_REVERB_MAX_DECAY_HFRATIO =              2.0f;
321 enum AL_REVERB_DEFAULT_DECAY_HFRATIO =          0.83f;
322 
323 enum AL_REVERB_MIN_REFLECTIONS_GAIN =           0.0f;
324 enum AL_REVERB_MAX_REFLECTIONS_GAIN =           3.16f;
325 enum AL_REVERB_DEFAULT_REFLECTIONS_GAIN =       0.05f;
326 
327 enum AL_REVERB_MIN_REFLECTIONS_DELAY =          0.0f;
328 enum AL_REVERB_MAX_REFLECTIONS_DELAY =          0.3f;
329 enum AL_REVERB_DEFAULT_REFLECTIONS_DELAY =      0.007f;
330 
331 enum AL_REVERB_MIN_LATE_REVERB_GAIN =           0.0f;
332 enum AL_REVERB_MAX_LATE_REVERB_GAIN =           10.0f;
333 enum AL_REVERB_DEFAULT_LATE_REVERB_GAIN =       1.26f;
334 
335 enum AL_REVERB_MIN_LATE_REVERB_DELAY =          0.0f;
336 enum AL_REVERB_MAX_LATE_REVERB_DELAY =          0.1f;
337 enum AL_REVERB_DEFAULT_LATE_REVERB_DELAY =      0.011f;
338 
339 enum AL_REVERB_MIN_AIR_ABSORPTION_GAINHF =      0.892f;
340 enum AL_REVERB_MAX_AIR_ABSORPTION_GAINHF =      1.0f;
341 enum AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF =  0.994f;
342 
343 enum AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR =        0.0f;
344 enum AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR =        10.0f;
345 enum AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR =    0.0f;
346 
347 enum AL_REVERB_MIN_DECAY_HFLIMIT =              AL_FALSE;
348 enum AL_REVERB_MAX_DECAY_HFLIMIT =              AL_TRUE;
349 enum AL_REVERB_DEFAULT_DECAY_HFLIMIT =          AL_TRUE;
350 
351 /* EAX reverb effect */
352 enum AL_EAXREVERB_MIN_DENSITY =                 0.0f;
353 enum AL_EAXREVERB_MAX_DENSITY =                 1.0f;
354 enum AL_EAXREVERB_DEFAULT_DENSITY =             1.0f;
355 
356 enum AL_EAXREVERB_MIN_DIFFUSION =               0.0f;
357 enum AL_EAXREVERB_MAX_DIFFUSION =               1.0f;
358 enum AL_EAXREVERB_DEFAULT_DIFFUSION =           1.0f;
359 
360 enum AL_EAXREVERB_MIN_GAIN =                    0.0f;
361 enum AL_EAXREVERB_MAX_GAIN =                    1.0f;
362 enum AL_EAXREVERB_DEFAULT_GAIN =                0.32f;
363 
364 enum AL_EAXREVERB_MIN_GAINHF =                  0.0f;
365 enum AL_EAXREVERB_MAX_GAINHF =                  1.0f;
366 enum AL_EAXREVERB_DEFAULT_GAINHF =              0.89f;
367 
368 enum AL_EAXREVERB_MIN_GAINLF =                  0.0f;
369 enum AL_EAXREVERB_MAX_GAINLF =                  1.0f;
370 enum AL_EAXREVERB_DEFAULT_GAINLF =              1.0f;
371 
372 enum AL_EAXREVERB_MIN_DECAY_TIME =              0.1f;
373 enum AL_EAXREVERB_MAX_DECAY_TIME =              20.0f;
374 enum AL_EAXREVERB_DEFAULT_DECAY_TIME =          1.49f;
375 
376 enum AL_EAXREVERB_MIN_DECAY_HFRATIO =           0.1f;
377 enum AL_EAXREVERB_MAX_DECAY_HFRATIO =           2.0f;
378 enum AL_EAXREVERB_DEFAULT_DECAY_HFRATIO =       0.83f;
379 
380 enum AL_EAXREVERB_MIN_DECAY_LFRATIO =           0.1f;
381 enum AL_EAXREVERB_MAX_DECAY_LFRATIO =           2.0f;
382 enum AL_EAXREVERB_DEFAULT_DECAY_LFRATIO =       1.0f;
383 
384 enum AL_EAXREVERB_MIN_REFLECTIONS_GAIN =        0.0f;
385 enum AL_EAXREVERB_MAX_REFLECTIONS_GAIN =        3.16f;
386 enum AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN =    0.05f;
387 
388 enum AL_EAXREVERB_MIN_REFLECTIONS_DELAY =       0.0f;
389 enum AL_EAXREVERB_MAX_REFLECTIONS_DELAY =       0.3f;
390 enum AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY =   0.007f;
391 
392 enum AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ = 0.0f;
393 
394 enum AL_EAXREVERB_MIN_LATE_REVERB_GAIN =        0.0f;
395 enum AL_EAXREVERB_MAX_LATE_REVERB_GAIN =        10.0f;
396 enum AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN =    1.26f;
397 
398 enum AL_EAXREVERB_MIN_LATE_REVERB_DELAY =       0.0f;
399 enum AL_EAXREVERB_MAX_LATE_REVERB_DELAY =       0.1f;
400 enum AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY =   0.011f;
401 
402 enum AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ = 0.0f;
403 
404 enum AL_EAXREVERB_MIN_ECHO_TIME =               0.075f;
405 enum AL_EAXREVERB_MAX_ECHO_TIME =               0.25f;
406 enum AL_EAXREVERB_DEFAULT_ECHO_TIME =           0.25f;
407 
408 enum AL_EAXREVERB_MIN_ECHO_DEPTH =              0.0f;
409 enum AL_EAXREVERB_MAX_ECHO_DEPTH =              1.0f;
410 enum AL_EAXREVERB_DEFAULT_ECHO_DEPTH =          0.0f;
411 
412 enum AL_EAXREVERB_MIN_MODULATION_TIME =         0.04f;
413 enum AL_EAXREVERB_MAX_MODULATION_TIME =         4.0f;
414 enum AL_EAXREVERB_DEFAULT_MODULATION_TIME =     0.25f;
415 
416 enum AL_EAXREVERB_MIN_MODULATION_DEPTH =        0.0f;
417 enum AL_EAXREVERB_MAX_MODULATION_DEPTH =        1.0f;
418 enum AL_EAXREVERB_DEFAULT_MODULATION_DEPTH =    0.0f;
419 
420 enum AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF =   0.892f;
421 enum AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF =   1.0f;
422 enum AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF = 0.994f;
423 
424 enum AL_EAXREVERB_MIN_HFREFERENCE =             1000.0f;
425 enum AL_EAXREVERB_MAX_HFREFERENCE =             20000.0f;
426 enum AL_EAXREVERB_DEFAULT_HFREFERENCE =         5000.0f;
427 
428 enum AL_EAXREVERB_MIN_LFREFERENCE =             20.0f;
429 enum AL_EAXREVERB_MAX_LFREFERENCE =             1000.0f;
430 enum AL_EAXREVERB_DEFAULT_LFREFERENCE =         250.0f;
431 
432 enum AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR =     0.0f;
433 enum AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR =     10.0f;
434 enum AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0f;
435 
436 enum AL_EAXREVERB_MIN_DECAY_HFLIMIT =           AL_FALSE;
437 enum AL_EAXREVERB_MAX_DECAY_HFLIMIT =           AL_TRUE;
438 enum AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT =       AL_TRUE;
439 
440 /* Chorus effect */
441 enum AL_CHORUS_WAVEFORM_SINUSOID =              0;
442 enum AL_CHORUS_WAVEFORM_TRIANGLE =              1;
443 
444 enum AL_CHORUS_MIN_WAVEFORM =                   0;
445 enum AL_CHORUS_MAX_WAVEFORM =                   1;
446 enum AL_CHORUS_DEFAULT_WAVEFORM =               1;
447 
448 enum AL_CHORUS_MIN_PHASE =                      -180;
449 enum AL_CHORUS_MAX_PHASE =                      180;
450 enum AL_CHORUS_DEFAULT_PHASE =                  90;
451 
452 enum AL_CHORUS_MIN_RATE =                       0.0f;
453 enum AL_CHORUS_MAX_RATE =                       10.0f;
454 enum AL_CHORUS_DEFAULT_RATE =                   1.1f;
455 
456 enum AL_CHORUS_MIN_DEPTH =                      0.0f;
457 enum AL_CHORUS_MAX_DEPTH =                      1.0f;
458 enum AL_CHORUS_DEFAULT_DEPTH =                  0.1f;
459 
460 enum AL_CHORUS_MIN_FEEDBACK =                   -1.0f;
461 enum AL_CHORUS_MAX_FEEDBACK =                   1.0f;
462 enum AL_CHORUS_DEFAULT_FEEDBACK =               0.25f;
463 
464 enum AL_CHORUS_MIN_DELAY =                      0.0f;
465 enum AL_CHORUS_MAX_DELAY =                      0.016f;
466 enum AL_CHORUS_DEFAULT_DELAY =                  0.016f;
467 
468 /* Distortion effect */
469 enum AL_DISTORTION_MIN_EDGE =                   0.0f;
470 enum AL_DISTORTION_MAX_EDGE =                   1.0f;
471 enum AL_DISTORTION_DEFAULT_EDGE =               0.2f;
472 
473 enum AL_DISTORTION_MIN_GAIN =                   0.01f;
474 enum AL_DISTORTION_MAX_GAIN =                   1.0f;
475 enum AL_DISTORTION_DEFAULT_GAIN =               0.05f;
476 
477 enum AL_DISTORTION_MIN_LOWPASS_CUTOFF =         80.0f;
478 enum AL_DISTORTION_MAX_LOWPASS_CUTOFF =         24000.0f;
479 enum AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF =     8000.0f;
480 
481 enum AL_DISTORTION_MIN_EQCENTER =               80.0f;
482 enum AL_DISTORTION_MAX_EQCENTER =               24000.0f;
483 enum AL_DISTORTION_DEFAULT_EQCENTER =           3600.0f;
484 
485 enum AL_DISTORTION_MIN_EQBANDWIDTH =            80.0f;
486 enum AL_DISTORTION_MAX_EQBANDWIDTH =            24000.0f;
487 enum AL_DISTORTION_DEFAULT_EQBANDWIDTH =        3600.0f;
488 
489 /* Echo effect */
490 enum AL_ECHO_MIN_DELAY =                        0.0f;
491 enum AL_ECHO_MAX_DELAY =                        0.207f;
492 enum AL_ECHO_DEFAULT_DELAY =                    0.1f;
493 
494 enum AL_ECHO_MIN_LRDELAY =                      0.0f;
495 enum AL_ECHO_MAX_LRDELAY =                      0.404f;
496 enum AL_ECHO_DEFAULT_LRDELAY =                  0.1f;
497 
498 enum AL_ECHO_MIN_DAMPING =                      0.0f;
499 enum AL_ECHO_MAX_DAMPING =                      0.99f;
500 enum AL_ECHO_DEFAULT_DAMPING =                  0.5f;
501 
502 enum AL_ECHO_MIN_FEEDBACK =                     0.0f;
503 enum AL_ECHO_MAX_FEEDBACK =                     1.0f;
504 enum AL_ECHO_DEFAULT_FEEDBACK =                 0.5f;
505 
506 enum AL_ECHO_MIN_SPREAD =                       -1.0f;
507 enum AL_ECHO_MAX_SPREAD =                       1.0f;
508 enum AL_ECHO_DEFAULT_SPREAD =                   -1.0f;
509 
510 /* Flanger effect */
511 enum AL_FLANGER_WAVEFORM_SINUSOID =             0;
512 enum AL_FLANGER_WAVEFORM_TRIANGLE =             1;
513 
514 enum AL_FLANGER_MIN_WAVEFORM =                  0;
515 enum AL_FLANGER_MAX_WAVEFORM =                  1;
516 enum AL_FLANGER_DEFAULT_WAVEFORM =              1;
517 
518 enum AL_FLANGER_MIN_PHASE =                     -180;
519 enum AL_FLANGER_MAX_PHASE =                     180;
520 enum AL_FLANGER_DEFAULT_PHASE =                 0;
521 
522 enum AL_FLANGER_MIN_RATE =                      0.0f;
523 enum AL_FLANGER_MAX_RATE =                      10.0f;
524 enum AL_FLANGER_DEFAULT_RATE =                  0.27f;
525 
526 enum AL_FLANGER_MIN_DEPTH =                     0.0f;
527 enum AL_FLANGER_MAX_DEPTH =                     1.0f;
528 enum AL_FLANGER_DEFAULT_DEPTH =                 1.0f;
529 
530 enum AL_FLANGER_MIN_FEEDBACK =                  -1.0f;
531 enum AL_FLANGER_MAX_FEEDBACK =                  1.0f;
532 enum AL_FLANGER_DEFAULT_FEEDBACK =              -0.5f;
533 
534 enum AL_FLANGER_MIN_DELAY =                     0.0f;
535 enum AL_FLANGER_MAX_DELAY =                     0.004f;
536 enum AL_FLANGER_DEFAULT_DELAY =                 0.002f;
537 
538 /* Frequency shifter effect */
539 enum AL_FREQUENCY_SHIFTER_MIN_FREQUENCY =       0.0f;
540 enum AL_FREQUENCY_SHIFTER_MAX_FREQUENCY =       24000.0f;
541 enum AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY =   0.0f;
542 
543 enum AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION =  0;
544 enum AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION =  2;
545 enum AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION = 0;
546 
547 enum AL_FREQUENCY_SHIFTER_DIRECTION_DOWN =      0;
548 enum AL_FREQUENCY_SHIFTER_DIRECTION_UP =        1;
549 enum AL_FREQUENCY_SHIFTER_DIRECTION_OFF =       2;
550 
551 enum AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION = 0;
552 enum AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION = 2;
553 enum AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION = 0;
554 
555 /* Vocal morpher effect */
556 enum AL_VOCAL_MORPHER_MIN_PHONEMEA =            0;
557 enum AL_VOCAL_MORPHER_MAX_PHONEMEA =            29;
558 enum AL_VOCAL_MORPHER_DEFAULT_PHONEMEA =        0;
559 
560 enum AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING = -24;
561 enum AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING = 24;
562 enum AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING = 0;
563 
564 enum AL_VOCAL_MORPHER_MIN_PHONEMEB =            0;
565 enum AL_VOCAL_MORPHER_MAX_PHONEMEB =            29;
566 enum AL_VOCAL_MORPHER_DEFAULT_PHONEMEB =        10;
567 
568 enum AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING = -24;
569 enum AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING = 24;
570 enum AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING = 0;
571 
572 enum AL_VOCAL_MORPHER_PHONEME_A =               0;
573 enum AL_VOCAL_MORPHER_PHONEME_E =               1;
574 enum AL_VOCAL_MORPHER_PHONEME_I =               2;
575 enum AL_VOCAL_MORPHER_PHONEME_O =               3;
576 enum AL_VOCAL_MORPHER_PHONEME_U =               4;
577 enum AL_VOCAL_MORPHER_PHONEME_AA =              5;
578 enum AL_VOCAL_MORPHER_PHONEME_AE =              6;
579 enum AL_VOCAL_MORPHER_PHONEME_AH =              7;
580 enum AL_VOCAL_MORPHER_PHONEME_AO =              8;
581 enum AL_VOCAL_MORPHER_PHONEME_EH =              9;
582 enum AL_VOCAL_MORPHER_PHONEME_ER =              10;
583 enum AL_VOCAL_MORPHER_PHONEME_IH =              11;
584 enum AL_VOCAL_MORPHER_PHONEME_IY =              12;
585 enum AL_VOCAL_MORPHER_PHONEME_UH =              13;
586 enum AL_VOCAL_MORPHER_PHONEME_UW =              14;
587 enum AL_VOCAL_MORPHER_PHONEME_B =               15;
588 enum AL_VOCAL_MORPHER_PHONEME_D =               16;
589 enum AL_VOCAL_MORPHER_PHONEME_F =               17;
590 enum AL_VOCAL_MORPHER_PHONEME_G =               18;
591 enum AL_VOCAL_MORPHER_PHONEME_J =               19;
592 enum AL_VOCAL_MORPHER_PHONEME_K =               20;
593 enum AL_VOCAL_MORPHER_PHONEME_L =               21;
594 enum AL_VOCAL_MORPHER_PHONEME_M =               22;
595 enum AL_VOCAL_MORPHER_PHONEME_N =               23;
596 enum AL_VOCAL_MORPHER_PHONEME_P =               24;
597 enum AL_VOCAL_MORPHER_PHONEME_R =               25;
598 enum AL_VOCAL_MORPHER_PHONEME_S =               26;
599 enum AL_VOCAL_MORPHER_PHONEME_T =               27;
600 enum AL_VOCAL_MORPHER_PHONEME_V =               28;
601 enum AL_VOCAL_MORPHER_PHONEME_Z =               29;
602 
603 enum AL_VOCAL_MORPHER_WAVEFORM_SINUSOID =       0;
604 enum AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE =       1;
605 enum AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH =       2;
606 
607 enum AL_VOCAL_MORPHER_MIN_WAVEFORM =            0;
608 enum AL_VOCAL_MORPHER_MAX_WAVEFORM =            2;
609 enum AL_VOCAL_MORPHER_DEFAULT_WAVEFORM =        0;
610 
611 enum AL_VOCAL_MORPHER_MIN_RATE =                0.0f;
612 enum AL_VOCAL_MORPHER_MAX_RATE =                10.0f;
613 enum AL_VOCAL_MORPHER_DEFAULT_RATE =            1.41f;
614 
615 /* Pitch shifter effect */
616 enum AL_PITCH_SHIFTER_MIN_COARSE_TUNE =         -12;
617 enum AL_PITCH_SHIFTER_MAX_COARSE_TUNE =         12;
618 enum AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE =     12;
619 
620 enum AL_PITCH_SHIFTER_MIN_FINE_TUNE =           -50;
621 enum AL_PITCH_SHIFTER_MAX_FINE_TUNE =           50;
622 enum AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE =       0;
623 
624 /* Ring modulator effect */
625 enum AL_RING_MODULATOR_MIN_FREQUENCY =          0.0f;
626 enum AL_RING_MODULATOR_MAX_FREQUENCY =          8000.0f;
627 enum AL_RING_MODULATOR_DEFAULT_FREQUENCY =      440.0f;
628 
629 enum AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF =    0.0f;
630 enum AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF =    24000.0f;
631 enum AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF = 800.0f;
632 
633 enum AL_RING_MODULATOR_SINUSOID =               0;
634 enum AL_RING_MODULATOR_SAWTOOTH =               1;
635 enum AL_RING_MODULATOR_SQUARE =                 2;
636 
637 enum AL_RING_MODULATOR_MIN_WAVEFORM =           0;
638 enum AL_RING_MODULATOR_MAX_WAVEFORM =           2;
639 enum AL_RING_MODULATOR_DEFAULT_WAVEFORM =       0;
640 
641 /* Autowah effect */
642 enum AL_AUTOWAH_MIN_ATTACK_TIME =               0.0001f;
643 enum AL_AUTOWAH_MAX_ATTACK_TIME =               1.0f;
644 enum AL_AUTOWAH_DEFAULT_ATTACK_TIME =           0.06f;
645 
646 enum AL_AUTOWAH_MIN_RELEASE_TIME =              0.0001f;
647 enum AL_AUTOWAH_MAX_RELEASE_TIME =              1.0f;
648 enum AL_AUTOWAH_DEFAULT_RELEASE_TIME =          0.06f;
649 
650 enum AL_AUTOWAH_MIN_RESONANCE =                 2.0f;
651 enum AL_AUTOWAH_MAX_RESONANCE =                 1000.0f;
652 enum AL_AUTOWAH_DEFAULT_RESONANCE =             1000.0f;
653 
654 enum AL_AUTOWAH_MIN_PEAK_GAIN =                 0.00003f;
655 enum AL_AUTOWAH_MAX_PEAK_GAIN =                 31621.0f;
656 enum AL_AUTOWAH_DEFAULT_PEAK_GAIN =             11.22f;
657 
658 /* Compressor effect */
659 enum AL_COMPRESSOR_MIN_ONOFF =                  0;
660 enum AL_COMPRESSOR_MAX_ONOFF =                  1;
661 enum AL_COMPRESSOR_DEFAULT_ONOFF =              1;
662 
663 /* Equalizer effect */
664 enum AL_EQUALIZER_MIN_LOW_GAIN =                0.126f;
665 enum AL_EQUALIZER_MAX_LOW_GAIN =                7.943f;
666 enum AL_EQUALIZER_DEFAULT_LOW_GAIN =            1.0f;
667 
668 enum AL_EQUALIZER_MIN_LOW_CUTOFF =              50.0f;
669 enum AL_EQUALIZER_MAX_LOW_CUTOFF =              800.0f;
670 enum AL_EQUALIZER_DEFAULT_LOW_CUTOFF =          200.0f;
671 
672 enum AL_EQUALIZER_MIN_MID1_GAIN =               0.126f;
673 enum AL_EQUALIZER_MAX_MID1_GAIN =               7.943f;
674 enum AL_EQUALIZER_DEFAULT_MID1_GAIN =           1.0f;
675 
676 enum AL_EQUALIZER_MIN_MID1_CENTER =             200.0f;
677 enum AL_EQUALIZER_MAX_MID1_CENTER =             3000.0f;
678 enum AL_EQUALIZER_DEFAULT_MID1_CENTER =         500.0f;
679 
680 enum AL_EQUALIZER_MIN_MID1_WIDTH =              0.01f;
681 enum AL_EQUALIZER_MAX_MID1_WIDTH =              1.0f;
682 enum AL_EQUALIZER_DEFAULT_MID1_WIDTH =          1.0f;
683 
684 enum AL_EQUALIZER_MIN_MID2_GAIN =               0.126f;
685 enum AL_EQUALIZER_MAX_MID2_GAIN =               7.943f;
686 enum AL_EQUALIZER_DEFAULT_MID2_GAIN =           1.0f;
687 
688 enum AL_EQUALIZER_MIN_MID2_CENTER =             1000.0f;
689 enum AL_EQUALIZER_MAX_MID2_CENTER =             8000.0f;
690 enum AL_EQUALIZER_DEFAULT_MID2_CENTER =         3000.0f;
691 
692 enum AL_EQUALIZER_MIN_MID2_WIDTH =              0.01f;
693 enum AL_EQUALIZER_MAX_MID2_WIDTH =              1.0f;
694 enum AL_EQUALIZER_DEFAULT_MID2_WIDTH =          1.0f;
695 
696 enum AL_EQUALIZER_MIN_HIGH_GAIN =               0.126f;
697 enum AL_EQUALIZER_MAX_HIGH_GAIN =               7.943f;
698 enum AL_EQUALIZER_DEFAULT_HIGH_GAIN =           1.0f;
699 
700 enum AL_EQUALIZER_MIN_HIGH_CUTOFF =             4000.0f;
701 enum AL_EQUALIZER_MAX_HIGH_CUTOFF =             16000.0f;
702 enum AL_EQUALIZER_DEFAULT_HIGH_CUTOFF =         6000.0f;
703 
704 
705 /* Source parameter value ranges and defaults. */
706 enum AL_MIN_AIR_ABSORPTION_FACTOR =             0.0f;
707 enum AL_MAX_AIR_ABSORPTION_FACTOR =             10.0f;
708 enum AL_DEFAULT_AIR_ABSORPTION_FACTOR =         0.0f;
709 
710 enum AL_MIN_ROOM_ROLLOFF_FACTOR =               0.0f;
711 enum AL_MAX_ROOM_ROLLOFF_FACTOR =               10.0f;
712 enum AL_DEFAULT_ROOM_ROLLOFF_FACTOR =           0.0f;
713 
714 enum AL_MIN_CONE_OUTER_GAINHF =                 0.0f;
715 enum AL_MAX_CONE_OUTER_GAINHF =                 1.0f;
716 enum AL_DEFAULT_CONE_OUTER_GAINHF =             1.0f;
717 
718 enum AL_MIN_DIRECT_FILTER_GAINHF_AUTO =         AL_FALSE;
719 enum AL_MAX_DIRECT_FILTER_GAINHF_AUTO =         AL_TRUE;
720 enum AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO =     AL_TRUE;
721 
722 enum AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO =   AL_FALSE;
723 enum AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO =   AL_TRUE;
724 enum AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL_TRUE;
725 
726 enum AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL_FALSE;
727 enum AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL_TRUE;
728 enum AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL_TRUE;
729 
730 
731 /* Listener parameter value ranges and defaults. */
732 enum AL_MIN_METERS_PER_UNIT =                   float.min_normal;
733 enum AL_MAX_METERS_PER_UNIT =                   float.max;
734 enum AL_DEFAULT_METERS_PER_UNIT =               1.0f;