aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alEffect.c
diff options
context:
space:
mode:
authorRaulshc <[email protected]>2018-03-18 17:47:17 +0100
committerGitHub <[email protected]>2018-03-18 17:47:17 +0100
commit6fd23f09842b81788298e1840b8626252fdf5e18 (patch)
tree1f777d222368b80c131e9992735ffa3811052b5e /OpenAL32/alEffect.c
parent3fde27d89098f6f71f82c06f89a2acbaa5f20400 (diff)
EFX:Pitch Shifter implementation
Add pitch shifter effect using standard phase vocoder, based on work of Stephan Bernsee. Only mono signal processing by now.
Diffstat (limited to 'OpenAL32/alEffect.c')
-rw-r--r--OpenAL32/alEffect.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/OpenAL32/alEffect.c b/OpenAL32/alEffect.c
index 6b16fc56..e7dc6ace 100644
--- a/OpenAL32/alEffect.c
+++ b/OpenAL32/alEffect.c
@@ -45,6 +45,7 @@ const struct EffectList EffectList[EFFECTLIST_SIZE] = {
{ "equalizer", EQUALIZER_EFFECT, AL_EFFECT_EQUALIZER },
{ "flanger", FLANGER_EFFECT, AL_EFFECT_FLANGER },
{ "modulator", MODULATOR_EFFECT, AL_EFFECT_RING_MODULATOR },
+ { "pshifter", PSHIFTER_EFFECT, AL_EFFECT_PITCH_SHIFTER },
{ "dedicated", DEDICATED_EFFECT, AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT },
{ "dedicated", DEDICATED_EFFECT, AL_EFFECT_DEDICATED_DIALOGUE },
};
@@ -589,6 +590,11 @@ static void InitEffectParams(ALeffect *effect, ALenum type)
effect->Props.Modulator.Waveform = AL_RING_MODULATOR_DEFAULT_WAVEFORM;
effect->vtab = &ALmodulator_vtable;
break;
+ case AL_EFFECT_PITCH_SHIFTER:
+ effect->Props.Pshifter.CoarseTune = AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE;
+ effect->Props.Pshifter.FineTune = AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE;
+ effect->vtab = &ALpshifter_vtable;
+ break;
case AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT:
case AL_EFFECT_DEDICATED_DIALOGUE:
effect->Props.Dedicated.Gain = 1.0f;