#ifndef __efx_h_ #define __efx_h_ /** * OpenAL cross platform effects extension audio library * Copyright (C) 2005-2006 by authors. * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * Or go to http://www.gnu.org/copyleft/lgpl.html */ #ifdef __cplusplus extern "C" { #endif #define ALC_EXT_EFX_NAME "ALC_EXT_EFX" /** * Context definitions to be used with alcCreateContext. * These values must be unique and not conflict with other * al context values. */ #define ALC_EFX_MAJOR_VERSION 0x20001 #define ALC_EFX_MINOR_VERSION 0x20002 #define ALC_MAX_AUXILIARY_SENDS 0x20003 /** * Listener definitions to be used with alListener functions. * These values must be unique and not conflict with other * al listener values. */ #define AL_METERS_PER_UNIT 0x20004 /** * Source definitions to be used with alSource functions. * These values must be unique and not conflict with other * al source values. */ #define AL_DIRECT_FILTER 0x20005 #define AL_AUXILIARY_SEND_FILTER 0x20006 #define AL_AIR_ABSORPTION_FACTOR 0x20007 #define AL_ROOM_ROLLOFF_FACTOR 0x20008 #define AL_CONE_OUTER_GAINHF 0x20009 #define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C /** * Effect object definitions to be used with alEffect functions. * * Effect parameter value definitions, ranges, and defaults * appear farther down in this file. */ /* Reverb Parameters */ #define AL_REVERB_DENSITY 0x0001 #define AL_REVERB_DIFFUSION 0x0002 #define AL_REVERB_GAIN 0x0003 #define AL_REVERB_GAINHF 0x0004 #define AL_REVERB_DECAY_TIME 0x0005 #define AL_REVERB_DECAY_HFRATIO 0x0006 #define AL_REVERB_REFLECTIONS_GAIN 0x0007 #define AL_REVERB_REFLECTIONS_DELAY 0x0008 #define AL_REVERB_LATE_REVERB_GAIN 0x0009 #define AL_REVERB_LATE_REVERB_DELAY 0x000A #define AL_REVERB_AIR_ABSORPTION_GAINHF 0x000B #define AL_REVERB_ROOM_ROLLOFF_FACTOR 0x000C #define AL_REVERB_DECAY_HFLIMIT 0x000D /* Chorus Parameters */ #define AL_CHORUS_WAVEFORM 0x0001 #define AL_CHORUS_PHASE 0x0002 #define AL_CHORUS_RATE 0x0003 #define AL_CHORUS_DEPTH 0x0004 #define AL_CHORUS_FEEDBACK 0x0005 #define AL_CHORUS_DELAY 0x0006 /* Distortion Parameters */ #define AL_DISTORTION_EDGE 0x0001 #define AL_DISTORTION_GAIN 0x0002 #define AL_DISTORTION_LOWPASS_CUTOFF 0x0003 #define AL_DISTORTION_EQCENTER 0x0004 #define AL_DISTORTION_EQBANDWIDTH 0x0005 /* Echo Parameters */ #define AL_ECHO_DELAY 0x0001 #define AL_ECHO_LRDELAY 0x0002 #define AL_ECHO_DAMPING 0x0003 #define AL_ECHO_FEEDBACK 0x0004 #define AL_ECHO_SPREAD 0x0005 /* Flanger Parameters */ #define AL_FLANGER_WAVEFORM 0x0001 #define AL_FLANGER_PHASE 0x0002 #define AL_FLANGER_RATE 0x0003 #define AL_FLANGER_DEPTH 0x0004 #define AL_FLANGER_FEEDBACK 0x0005 #define AL_FLANGER_DELAY 0x0006 /* Frequencyshifter Parameters */ #define AL_FREQUENCY_SHIFTER_FREQUENCY 0x0001 #define AL_FREQUENCY_SHIFTER_LEFT_DIRECTION 0x0002 #define AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION 0x0003 /* Vocalmorpher Parameters */ #define AL_VOCAL_MORPHER_PHONEMEA 0x0001 #define AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING 0x0002 #define AL_VOCAL_MORPHER_PHONEMEB 0x0003 #define AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING 0x0004 #define AL_VOCAL_MORPHER_WAVEFORM 0x0005 #define AL_VOCAL_MORPHER_RATE 0x0006 /* Pitchshifter Parameters */ #define AL_PITCH_SHIFTER_COARSE_TUNE 0x0001 #define AL_PITCH_SHIFTER_FINE_TUNE 0x0002 /* Ringmodulator Parameters */ #define AL_RING_MODULATOR_FREQUENCY 0x0001 #define AL_RING_MODULATOR_HIGHPASS_CUTOFF 0x0002 #define AL_RING_MODULATOR_WAVEFORM 0x0003 /* Autowah Parameters */ #define AL_AUTOWAH_ATTACK_TIME 0x0001 #define AL_AUTOWAH_RELEASE_TIME 0x0002 #define AL_AUTOWAH_RESONANCE 0x0003 #define AL_AUTOWAH_PEAK_GAIN 0x0004 /* Compressor Parameters */ #define AL_COMPRESSOR_ONOFF 0x0001 /* Equalizer Parameters */ #define AL_EQUALIZER_LOW_GAIN 0x0001 #define AL_EQUALIZER_LOW_CUTOFF 0x0002 #define AL_EQUALIZER_MID1_GAIN 0x0003 #define AL_EQUALIZER_MID1_CENTER 0x0004 #define AL_EQUALIZER_MID1_WIDTH 0x0005 #define AL_EQUALIZER_MID2_GAIN 0x0006 #define AL_EQUALIZER_MID2_CENTER 0x0007 #define AL_EQUALIZER_MID2_WIDTH 0x0008 #define AL_EQUALIZER_HIGH_GAIN 0x0009 #define AL_EQUALIZER_HIGH_CUTOFF 0x000A /* Effect type */ #define AL_EFFECT_FIRST_PARAMETER 0x0000 #define AL_EFFECT_LAST_PARAMETER 0x8000 #define AL_EFFECT_TYPE 0x8001 /* Effect type definitions to be used with AL_EFFECT_TYPE. */ #define AL_EFFECT_NULL 0x0000 /* Can also be used as an Effect Object ID */ #define AL_EFFECT_REVERB 0x0001 #define AL_EFFECT_CHORUS 0x0002 #define AL_EFFECT_DISTORTION 0x0003 #define AL_EFFECT_ECHO 0x0004 #define AL_EFFECT_FLANGER 0x0005 #define AL_EFFECT_FREQUENCY_SHIFTER 0x0006 #define AL_EFFECT_VOCAL_MORPHER 0x0007 #define AL_EFFECT_PITCH_SHIFTER 0x0008 #define AL_EFFECT_RING_MODULATOR 0x0009 #define AL_EFFECT_AUTOWAH 0x000A #define AL_EFFECT_COMPRESSOR 0x000B #define AL_EFFECT_EQUALIZER 0x000C /** * Auxiliary Slot object definitions to be used with alAuxiliaryEffectSlot functions. */ #define AL_EFFECTSLOT_EFFECT 0x0001 #define AL_EFFECTSLOT_GAIN 0x0002 #define AL_EFFECTSLOT_AUXILIARY_SEND_AUTO 0x0003 /** * Value to be used as an Auxiliary Slot ID to disable a source send.. */ #define AL_EFFECTSLOT_NULL 0x0000 /** * Filter object definitions to be used with alFilter functions. */ /* Lowpass parameters. */ #define AL_LOWPASS_GAIN 0x0001 #define AL_LOWPASS_GAINHF 0x0002 /* Highpass Parameters */ #define AL_HIGHPASS_GAIN 0x0001 #define AL_HIGHPASS_GAINLF 0x0002 /* Bandpass Parameters */ #define AL_BANDPASS_GAIN 0x0001 #define AL_BANDPASS_GAINLF 0x0002 #define AL_BANDPASS_GAINHF 0x0003 /* Filter type */ #define AL_FILTER_FIRST_PARAMETER 0x0000 #define AL_FILTER_LAST_PARAMETER 0x8000 #define AL_FILTER_TYPE 0x8001 /* Filter type definitions to be used with AL_FILTER_TYPE. */ #define AL_FILTER_NULL 0x0000 /* Can also be used as a Filter Object ID */ #define AL_FILTER_LOWPASS 0x0001 #define AL_FILTER_HIGHPASS 0x0002 #define AL_FILTER_BANDPASS 0x0003 /** * Effect object functions. */ /* Create Effect objects. */ typedef void (__cdecl *LPALGENEFFECTS)( ALsizei n, ALuint* effects ); void alGenEffects( ALsizei n, ALuint* effects ); /* Delete Effect objects. */ typedef void (__cdecl *LPALDELETEEFFECTS)( ALsizei n, ALuint* effects ); void alDeleteEffects( ALsizei n, ALuint* effects ); /* Verify a handle is a valid Effect. */ typedef ALboolean (__cdecl *LPALISEFFECT)( ALuint eid ); ALboolean alIsEffect( ALuint eid ); /* Set an integer parameter for an Effect object. */ typedef void (__cdecl *LPALEFFECTI)( ALuint eid, ALenum param, ALint value); void alEffecti( ALuint eid, ALenum param, ALint value); typedef void (__cdecl *LPALEFFECTIV)( ALuint eid, ALenum param, ALint* values ); void alEffectiv( ALuint eid, ALenum param, ALint* values ); /* Set a floating point parameter for an Effect object. */ typedef void (__cdecl *LPALEFFECTF)( ALuint eid, ALenum param, ALfloat value); void alEffectf( ALuint eid, ALenum param, ALfloat value); typedef void (__cdecl *LPALEFFECTFV)( ALuint eid, ALenum param, ALfloat* values ); void alEffectfv( ALuint eid, ALenum param, ALfloat* values ); /* Get an integer parameter for an Effect object. */ typedef void (__cdecl *LPALGETEFFECTI)( ALuint eid, ALenum pname, ALint* value ); void alGetEffecti( ALuint eid, ALenum pname, ALint* value ); typedef void (__cdecl *LPALGETEFFECTIV)( ALuint eid, ALenum pname, ALint* values ); void alGetEffectiv( ALuint eid, ALenum pname, ALint* values ); /* Get a floating point parameter for an Effect object. */ typedef void (__cdecl *LPALGETEFFECTF)( ALuint eid, ALenum pname, ALfloat* value ); void alGetEffectf( ALuint eid, ALenum pname, ALfloat* value ); typedef void (__cdecl *LPALGETEFFECTFV)( ALuint eid, ALenum pname, ALfloat* values ); void alGetEffectfv( ALuint eid, ALenum pname, ALfloat* values ); /** * Filter object functions */ /* Create Filter objects. */ typedef void (__cdecl *LPALGENFILTERS)( ALsizei n, ALuint* filters ); void alGenFilters( ALsizei n, ALuint* filters ); /* Delete Filter objects. */ typedef void (__cdecl *LPALDELETEFILTERS)( ALsizei n, ALuint* filters ); void alDeleteFilters( ALsizei n, ALuint* filters ); /* Verify a handle is a valid Filter. */ typedef ALboolean (__cdecl *LPALISFILTER)( ALuint fid ); ALboolean alIsFilter( ALuint fid ); /* Set an integer parameter for a Filter object. */ typedef void (__cdecl *LPALFILTERI)( ALuint fid, ALenum param, ALint value ); void alFilteri( ALuint fid, ALenum param, ALint value ); typedef void (__cdecl *LPALFILTERIV)( ALuint fid, ALenum param, ALint* values ); void alFilteriv( ALuint fid, ALenum param, ALint* values ); /* Set a floating point parameter for an Filter object. */ typedef void (__cdecl *LPALFILTERF)( ALuint fid, ALenum param, ALfloat value); void alFilterf( ALuint fid, ALenum param, ALfloat value); typedef void (__cdecl *LPALFILTERFV)( ALuint fid, ALenum param, ALfloat* values ); void alFilterfv( ALuint fid, ALenum param, ALfloat* values ); /* Get an integer parameter for a Filter object. */ typedef void (__cdecl *LPALGETFILTERI)( ALuint fid, ALenum pname, ALint* value ); void alGetFilteri( ALuint fid, ALenum pname, ALint* value ); typedef void (__cdecl *LPALGETFILTERIV)( ALuint fid, ALenum pname, ALint* values ); void alGetFilteriv( ALuint fid, ALenum pname, ALint* values ); /* Get a floating point parameter for a Filter object. */ typedef void (__cdecl *LPALGETFILTERF)( ALuint fid, ALenum pname, ALfloat* value ); void alGetFilterf( ALuint fid, ALenum pname, ALfloat* value ); typedef void (__cdecl *LPALGETFILTERFV)( ALuint fid, ALenum pname, ALfloat* values ); void alGetFilterfv( ALuint fid, ALenum pname, ALfloat* values ); /** * Auxiliary Slot object functions */ /* Create Auxiliary Slot objects. */ typedef void (__cdecl *LPALGENAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots ); void alGenAuxiliaryEffectSlots( ALsizei n, ALuint* slots ); /* Delete Auxiliary Slot objects. */ typedef void (__cdecl *LPALDELETEAUXILIARYEFFECTSLOTS)( ALsizei n, ALuint* slots ); void alDeleteAuxiliaryEffectSlots( ALsizei n, ALuint* slots ); /* Verify a handle is a valid Auxiliary Slot. */ typedef ALboolean (__cdecl *LPALISAUXILIARYEFFECTSLOT)( ALuint slot ); ALboolean alIsAuxiliaryEffectSlot( ALuint slot ); /* Set an integer parameter for a Auxiliary Slot object. */ typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum param, ALint value ); void alAuxiliaryEffectSloti( ALuint asid, ALenum param, ALint value ); typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum param, ALint* values ); void alAuxiliaryEffectSlotiv( ALuint asid, ALenum param, ALint* values ); /* Set a floating point parameter for an Auxiliary Slot object. */ typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum param, ALfloat value ); void alAuxiliaryEffectSlotf( ALuint asid, ALenum param, ALfloat value ); typedef void (__cdecl *LPALAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum param, ALfloat* values ); void alAuxiliaryEffectSlotfv( ALuint asid, ALenum param, ALfloat* values ); /* Get an integer parameter for a Auxiliary Slot object. */ typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTI)( ALuint asid, ALenum pname, ALint* value ); void alGetAuxiliaryEffectSloti( ALuint asid, ALenum pname, ALint* value ); typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTIV)( ALuint asid, ALenum pname, ALint* values ); void alGetAuxiliaryEffectSlotiv( ALuint asid, ALenum pname, ALint* values ); /* Get a floating point parameter for a Auxiliary Slot object. */ typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTF)( ALuint asid, ALenum pname, ALfloat* value ); void alGetAuxiliaryEffectSlotf( ALuint asid, ALenum pname, ALfloat* value ); typedef void (__cdecl *LPALGETAUXILIARYEFFECTSLOTFV)( ALuint asid, ALenum pname, ALfloat* values ); void alGetAuxiliaryEffectSlotfv( ALuint asid, ALenum pname, ALfloat* values ); /********************************************************** * Filter ranges and defaults. */ /** * Lowpass filter */ #define LOWPASS_MIN_GAIN 0.0f #define LOWPASS_MAX_GAIN 1.0f #define LOWPASS_DEFAULT_GAIN 1.0f #define LOWPASS_MIN_GAINHF 0.0f #define LOWPASS_MAX_GAINHF 1.0f #define LOWPASS_DEFAULT_GAINHF 1.0f /** * Highpass filter */ #define HIGHPASS_MIN_GAIN 0.0f #define HIGHPASS_MAX_GAIN 1.0f #define HIGHPASS_DEFAULT_GAIN 1.0f #define HIGHPASS_MIN_GAINLF 0.0f #define HIGHPASS_MAX_GAINLF 1.0f #define HIGHPASS_DEFAULT_GAINLF 1.0f /** * Bandpass filter */ #define BANDPASS_MIN_GAIN 0.0f #define BANDPASS_MAX_GAIN 1.0f #define BANDPASS_DEFAULT_GAIN 1.0f #define BANDPASS_MIN_GAINHF 0.0f #define BANDPASS_MAX_GAINHF 1.0f #define BANDPASS_DEFAULT_GAINHF 1.0f #define BANDPASS_MIN_GAINLF 0.0f #define BANDPASS_MAX_GAINLF 1.0f #define BANDPASS_DEFAULT_GAINLF 1.0f /********************************************************** * Effect parameter structures, value definitions, ranges and defaults. */ /** * AL reverb effect parameter ranges and defaults */ #define AL_REVERB_MIN_DENSITY 0.0f #define AL_REVERB_MAX_DENSITY 1.0f #define AL_REVERB_DEFAULT_DENSITY 1.0f #define AL_REVERB_MIN_DIFFUSION 0.0f #define AL_REVERB_MAX_DIFFUSION 1.0f #define AL_REVERB_DEFAULT_DIFFUSION 1.0f #define AL_REVERB_MIN_GAIN 0.0f #define AL_REVERB_MAX_GAIN 1.0f #define AL_REVERB_DEFAULT_GAIN 0.32f #define AL_REVERB_MIN_GAINHF 0.0f #define AL_REVERB_MAX_GAINHF 1.0f #define AL_REVERB_DEFAULT_GAINHF 0.89f #define AL_REVERB_MIN_DECAY_TIME 0.1f #define AL_REVERB_MAX_DECAY_TIME 20.0f #define AL_REVERB_DEFAULT_DECAY_TIME 1.49f #define AL_REVERB_MIN_DECAY_HFRATIO 0.1f #define AL_REVERB_MAX_DECAY_HFRATIO 2.0f #define AL_REVERB_DEFAULT_DECAY_HFRATIO 0.83f #define AL_REVERB_MIN_REFLECTIONS_GAIN 0.0f #define AL_REVERB_MAX_REFLECTIONS_GAIN 3.16f #define AL_REVERB_DEFAULT_REFLECTIONS_GAIN 0.05f #define AL_REVERB_MIN_REFLECTIONS_DELAY 0.0f #define AL_REVERB_MAX_REFLECTIONS_DELAY 0.3f #define AL_REVERB_DEFAULT_REFLECTIONS_DELAY 0.007f #define AL_REVERB_MIN_LATE_REVERB_GAIN 0.0f #define AL_REVERB_MAX_LATE_REVERB_GAIN 10.0f #define AL_REVERB_DEFAULT_LATE_REVERB_GAIN 1.26f #define AL_REVERB_MIN_LATE_REVERB_DELAY 0.0f #define AL_REVERB_MAX_LATE_REVERB_DELAY 0.1f #define AL_REVERB_DEFAULT_LATE_REVERB_DELAY 0.011f #define AL_REVERB_MIN_AIR_ABSORPTION_GAINHF 0.892f #define AL_REVERB_MAX_AIR_ABSORPTION_GAINHF 1.0f #define AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF 0.994f #define AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR 0.0f #define AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR 10.0f #define AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR 0.0f #define AL_REVERB_MIN_DECAY_HFLIMIT AL_FALSE #define AL_REVERB_MAX_DECAY_HFLIMIT AL_TRUE #define AL_REVERB_DEFAULT_DECAY_HFLIMIT AL_TRUE /** * AL chorus effect parameter ranges and defaults */ #define AL_CHORUS_MIN_WAVEFORM 0 #define AL_CHORUS_MAX_WAVEFORM 1 #define AL_CHORUS_DEFAULT_WAVEFORM 1 #define AL_CHORUS_WAVEFORM_SINUSOID 0 #define AL_CHORUS_WAVEFORM_TRIANGLE 1 #define AL_CHORUS_MIN_PHASE (-180) #define AL_CHORUS_MAX_PHASE 180 #define AL_CHORUS_DEFAULT_PHASE 90 #define AL_CHORUS_MIN_RATE 0.0f #define AL_CHORUS_MAX_RATE 10.0f #define AL_CHORUS_DEFAULT_RATE 1.1f #define AL_CHORUS_MIN_DEPTH 0.0f #define AL_CHORUS_MAX_DEPTH 1.0f #define AL_CHORUS_DEFAULT_DEPTH 0.1f #define AL_CHORUS_MIN_FEEDBACK (-1.0f) #define AL_CHORUS_MAX_FEEDBACK 1.0f #define AL_CHORUS_DEFAULT_FEEDBACK 0.25f #define AL_CHORUS_MIN_DELAY 0.0f #define AL_CHORUS_MAX_DELAY 0.016f #define AL_CHORUS_DEFAULT_DELAY 0.016f /** * AL distortion effect parameter ranges and defaults */ #define AL_DISTORTION_MIN_EDGE 0.0f #define AL_DISTORTION_MAX_EDGE 1.0f #define AL_DISTORTION_DEFAULT_EDGE 0.2f #define AL_DISTORTION_MIN_GAIN 0.01f #define AL_DISTORTION_MAX_GAIN 1.0f #define AL_DISTORTION_DEFAULT_GAIN 0.05f #define AL_DISTORTION_MIN_LOWPASS_CUTOFF 80.0f #define AL_DISTORTION_MAX_LOWPASS_CUTOFF 24000.0f #define AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF 8000.0f #define AL_DISTORTION_MIN_EQCENTER 80.0f #define AL_DISTORTION_MAX_EQCENTER 24000.0f #define AL_DISTORTION_DEFAULT_EQCENTER 3600.0f #define AL_DISTORTION_MIN_EQBANDWIDTH 80.0f #define AL_DISTORTION_MAX_EQBANDWIDTH 24000.0f #define AL_DISTORTION_DEFAULT_EQBANDWIDTH 3600.0f /** * AL echo effect parameter ranges and defaults */ #define AL_ECHO_MIN_DELAY 0.0f #define AL_ECHO_MAX_DELAY 0.207f #define AL_ECHO_DEFAULT_DELAY 0.1f #define AL_ECHO_MIN_LRDELAY 0.0f #define AL_ECHO_MAX_LRDELAY 0.404f #define AL_ECHO_DEFAULT_LRDELAY 0.1f #define AL_ECHO_MIN_DAMPING 0.0f #define AL_ECHO_MAX_DAMPING 0.99f #define AL_ECHO_DEFAULT_DAMPING 0.5f #define AL_ECHO_MIN_FEEDBACK 0.0f #define AL_ECHO_MAX_FEEDBACK 1.0f #define AL_ECHO_DEFAULT_FEEDBACK 0.5f #define AL_ECHO_MIN_SPREAD (-1.0f) #define AL_ECHO_MAX_SPREAD 1.0f #define AL_ECHO_DEFAULT_SPREAD (-1.0f) /** * AL flanger effect parameter ranges and defaults */ #define AL_FLANGER_MIN_WAVEFORM 0 #define AL_FLANGER_MAX_WAVEFORM 1 #define AL_FLANGER_DEFAULT_WAVEFORM 1 #define AL_FLANGER_WAVEFORM_SINUSOID 0 #define AL_FLANGER_WAVEFORM_TRIANGLE 1 #define AL_FLANGER_MIN_PHASE (-180) #define AL_FLANGER_MAX_PHASE 180 #define AL_FLANGER_DEFAULT_PHASE 90 #define AL_FLANGER_MIN_RATE 0.0f #define AL_FLANGER_MAX_RATE 10.0f #define AL_FLANGER_DEFAULT_RATE 0.27f #define AL_FLANGER_MIN_DEPTH 0.0f #define AL_FLANGER_MAX_DEPTH 1.0f #define AL_FLANGER_DEFAULT_DEPTH 1.0f #define AL_FLANGER_MIN_FEEDBACK (-1.0f) #define AL_FLANGER_MAX_FEEDBACK 1.0f #define AL_FLANGER_DEFAULT_FEEDBACK (-0.5f) #define AL_FLANGER_MIN_DELAY 0.0f #define AL_FLANGER_MAX_DELAY 0.004f #define AL_FLANGER_DEFAULT_DELAY 0.002f /** * AL frequency shifter effect parameter ranges and defaults */ #define AL_FREQUENCY_SHIFTER_MIN_FREQUENCY 0.0f #define AL_FREQUENCY_SHIFTER_MAX_FREQUENCY 24000.0f #define AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY 0.0f #define AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION 0 #define AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION 2 #define AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION 0 #define AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION 0 #define AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION 2 #define AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION 0 #define AL_FREQUENCY_SHIFTER_DIRECTION_DOWN 0 #define AL_FREQUENCY_SHIFTER_DIRECTION_UP 1 #define AL_FREQUENCY_SHIFTER_DIRECTION_OFF 2 /** * AL vocal morpher effect parameter ranges and defaults */ #define AL_VOCAL_MORPHER_MIN_PHONEMEA 0 #define AL_VOCAL_MORPHER_MAX_PHONEMEA 29 #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA 0 #define AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING (-24) #define AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING 24 #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING 0 #define AL_VOCAL_MORPHER_MIN_PHONEMEB 0 #define AL_VOCAL_MORPHER_MAX_PHONEMEB 29 #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB 10 #define AL_VOCAL_MORPHER_PHONEME_A 0 #define AL_VOCAL_MORPHER_PHONEME_E 1 #define AL_VOCAL_MORPHER_PHONEME_I 2 #define AL_VOCAL_MORPHER_PHONEME_O 3 #define AL_VOCAL_MORPHER_PHONEME_U 4 #define AL_VOCAL_MORPHER_PHONEME_AA 5 #define AL_VOCAL_MORPHER_PHONEME_AE 6 #define AL_VOCAL_MORPHER_PHONEME_AH 7 #define AL_VOCAL_MORPHER_PHONEME_AO 8 #define AL_VOCAL_MORPHER_PHONEME_EH 9 #define AL_VOCAL_MORPHER_PHONEME_ER 10 #define AL_VOCAL_MORPHER_PHONEME_IH 11 #define AL_VOCAL_MORPHER_PHONEME_IY 12 #define AL_VOCAL_MORPHER_PHONEME_UH 13 #define AL_VOCAL_MORPHER_PHONEME_UW 14 #define AL_VOCAL_MORPHER_PHONEME_B 15 #define AL_VOCAL_MORPHER_PHONEME_D 16 #define AL_VOCAL_MORPHER_PHONEME_F 17 #define AL_VOCAL_MORPHER_PHONEME_G 18 #define AL_VOCAL_MORPHER_PHONEME_J 19 #define AL_VOCAL_MORPHER_PHONEME_K 20 #define AL_VOCAL_MORPHER_PHONEME_L 21 #define AL_VOCAL_MORPHER_PHONEME_M 22 #define AL_VOCAL_MORPHER_PHONEME_N 23 #define AL_VOCAL_MORPHER_PHONEME_P 24 #define AL_VOCAL_MORPHER_PHONEME_R 25 #define AL_VOCAL_MORPHER_PHONEME_S 26 #define AL_VOCAL_MORPHER_PHONEME_T 27 #define AL_VOCAL_MORPHER_PHONEME_V 28 #define AL_VOCAL_MORPHER_PHONEME_Z 29 #define AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING (-24) #define AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING 24 #define AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING 0 #define AL_VOCAL_MORPHER_MIN_WAVEFORM 0 #define AL_VOCAL_MORPHER_MAX_WAVEFORM 2 #define AL_VOCAL_MORPHER_DEFAULT_WAVEFORM 0 #define AL_VOCAL_MORPHER_WAVEFORM_SINUSOID 0 #define AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE 1 #define AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH 2 #define AL_VOCAL_MORPHER_MIN_RATE 0.0f #define AL_VOCAL_MORPHER_MAX_RATE 10.0f #define AL_VOCAL_MORPHER_DEFAULT_RATE 1.41f /** * AL pitch shifter effect parameter ranges and defaults */ #define AL_PITCH_SHIFTER_MIN_COARSE_TUNE (-12) #define AL_PITCH_SHIFTER_MAX_COARSE_TUNE 12 #define AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE 12 #define AL_PITCH_SHIFTER_MIN_FINE_TUNE (-50) #define AL_PITCH_SHIFTER_MAX_FINE_TUNE 50 #define AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE 0 /** * AL ring modulator effect parameter ranges and defaults */ #define AL_RING_MODULATOR_MIN_FREQUENCY 0.0f #define AL_RING_MODULATOR_MAX_FREQUENCY 8000.0f #define AL_RING_MODULATOR_DEFAULT_FREQUENCY 440.0f #define AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF 0.0f #define AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF 24000.0f #define AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF 800.0f #define AL_RING_MODULATOR_MIN_WAVEFORM 0 #define AL_RING_MODULATOR_MAX_WAVEFORM 2 #define AL_RING_MODULATOR_DEFAULT_WAVEFORM 0 #define AL_RING_MODULATOR_SINUSOID 0 #define AL_RING_MODULATOR_SAWTOOTH 1 #define AL_RING_MODULATOR_SQUARE 2 /** * AL autowah effect parameter ranges and defaults */ #define AL_AUTOWAH_MIN_ATTACK_TIME 0.0001f #define AL_AUTOWAH_MAX_ATTACK_TIME 1.0f #define AL_AUTOWAH_DEFAULT_ATTACK_TIME 0.06f #define AL_AUTOWAH_MIN_RELEASE_TIME 0.0001f #define AL_AUTOWAH_MAX_RELEASE_TIME 1.0f #define AL_AUTOWAH_DEFAULT_RELEASE_TIME 0.06f #define AL_AUTOWAH_MIN_RESONANCE 2.0f #define AL_AUTOWAH_MAX_RESONANCE 1000.0f #define AL_AUTOWAH_DEFAULT_RESONANCE 1000.0f #define AL_AUTOWAH_MIN_PEAK_GAIN 0.00003f #define AL_AUTOWAH_MAX_PEAK_GAIN 31621.0f #define AL_AUTOWAH_DEFAULT_PEAK_GAIN 11.22f /** * AL compressor effect parameter ranges and defaults */ #define AL_COMPRESSOR_MIN_ONOFF 0 #define AL_COMPRESSOR_MAX_ONOFF 1 #define AL_COMPRESSOR_DEFAULT_ONOFF 1 /** * AL equalizer effect parameter ranges and defaults */ #define AL_EQUALIZER_MIN_LOW_GAIN 0.126f #define AL_EQUALIZER_MAX_LOW_GAIN 7.943f #define AL_EQUALIZER_DEFAULT_LOW_GAIN 1.0f #define AL_EQUALIZER_MIN_LOW_CUTOFF 50.0f #define AL_EQUALIZER_MAX_LOW_CUTOFF 800.0f #define AL_EQUALIZER_DEFAULT_LOW_CUTOFF 200.0f #define AL_EQUALIZER_MIN_MID1_GAIN 0.126f #define AL_EQUALIZER_MAX_MID1_GAIN 7.943f #define AL_EQUALIZER_DEFAULT_MID1_GAIN 1.0f #define AL_EQUALIZER_MIN_MID1_CENTER 200.0f #define AL_EQUALIZER_MAX_MID1_CENTER 3000.0f #define AL_EQUALIZER_DEFAULT_MID1_CENTER 500.0f #define AL_EQUALIZER_MIN_MID1_WIDTH 0.01f #define AL_EQUALIZER_MAX_MID1_WIDTH 1.0f #define AL_EQUALIZER_DEFAULT_MID1_WIDTH 1.0f #define AL_EQUALIZER_MIN_MID2_GAIN 0.126f #define AL_EQUALIZER_MAX_MID2_GAIN 7.943f #define AL_EQUALIZER_DEFAULT_MID2_GAIN 1.0f #define AL_EQUALIZER_MIN_MID2_CENTER 1000.0f #define AL_EQUALIZER_MAX_MID2_CENTER 8000.0f #define AL_EQUALIZER_DEFAULT_MID2_CENTER 3000.0f #define AL_EQUALIZER_MIN_MID2_WIDTH 0.01f #define AL_EQUALIZER_MAX_MID2_WIDTH 1.0f #define AL_EQUALIZER_DEFAULT_MID2_WIDTH 1.0f #define AL_EQUALIZER_MIN_HIGH_GAIN 0.126f #define AL_EQUALIZER_MAX_HIGH_GAIN 7.943f #define AL_EQUALIZER_DEFAULT_HIGH_GAIN 1.0f #define AL_EQUALIZER_MIN_HIGH_CUTOFF 4000.0f #define AL_EQUALIZER_MAX_HIGH_CUTOFF 16000.0f #define AL_EQUALIZER_DEFAULT_HIGH_CUTOFF 6000.0f #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __efx_h_ */