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