diff options
author | Chris Robinson <[email protected]> | 2013-12-29 02:40:12 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2013-12-29 02:40:12 -0800 |
commit | deecbbc55d44a0043c92464949c83c9722d6be00 (patch) | |
tree | c00c75c006cce9167ecefe32fe9fa67cd59e8da6 /Alc/midi | |
parent | d9aedc14167c7f5c4fc02f95de6be89ef8db63c2 (diff) |
Add modulation envelope properties
Diffstat (limited to 'Alc/midi')
-rw-r--r-- | Alc/midi/base.c | 9 | ||||
-rw-r--r-- | Alc/midi/fluidsynth.c | 8 | ||||
-rw-r--r-- | Alc/midi/sf2load.c | 16 |
3 files changed, 25 insertions, 8 deletions
diff --git a/Alc/midi/base.c b/Alc/midi/base.c index 00114f59..7eb2d2c5 100644 --- a/Alc/midi/base.c +++ b/Alc/midi/base.c @@ -299,6 +299,15 @@ void ALfontsound_Construct(ALfontsound *self) self->VibratoLfoToPitch = 0; self->ModEnvToPitch = 0; + self->ModEnv.DelayTime = -12000; + self->ModEnv.AttackTime = -12000; + self->ModEnv.HoldTime = -12000; + self->ModEnv.DecayTime = -12000; + self->ModEnv.SustainVol = 0; + self->ModEnv.ReleaseTime = -12000; + self->ModEnv.KeyToHoldTime = 0; + self->ModEnv.KeyToDecayTime = 0; + self->VolEnv.DelayTime = -12000; self->VolEnv.AttackTime = -12000; self->VolEnv.HoldTime = -12000; diff --git a/Alc/midi/fluidsynth.c b/Alc/midi/fluidsynth.c index 7855132a..35092966 100644 --- a/Alc/midi/fluidsynth.c +++ b/Alc/midi/fluidsynth.c @@ -166,6 +166,14 @@ static int FPreset_noteOn(fluid_preset_t *preset, fluid_synth_t *synth, int chan fluid_voice_gen_set(voice, 5, sound->ModLfoToPitch); fluid_voice_gen_set(voice, 6, sound->VibratoLfoToPitch); fluid_voice_gen_set(voice, 7, sound->ModEnvToPitch); + fluid_voice_gen_set(voice, 25, sound->ModEnv.DelayTime); + fluid_voice_gen_set(voice, 26, sound->ModEnv.AttackTime); + fluid_voice_gen_set(voice, 27, sound->ModEnv.HoldTime); + fluid_voice_gen_set(voice, 28, sound->ModEnv.DecayTime); + fluid_voice_gen_set(voice, 29, sound->ModEnv.SustainVol); + fluid_voice_gen_set(voice, 30, sound->ModEnv.ReleaseTime); + fluid_voice_gen_set(voice, 31, sound->ModEnv.KeyToHoldTime); + fluid_voice_gen_set(voice, 32, sound->ModEnv.KeyToDecayTime); fluid_voice_gen_set(voice, 33, sound->VolEnv.DelayTime); fluid_voice_gen_set(voice, 34, sound->VolEnv.AttackTime); fluid_voice_gen_set(voice, 35, sound->VolEnv.HoldTime); diff --git a/Alc/midi/sf2load.c b/Alc/midi/sf2load.c index be2cb1df..b33ea8af 100644 --- a/Alc/midi/sf2load.c +++ b/Alc/midi/sf2load.c @@ -819,14 +819,14 @@ static void fillZone(ALuint id, const GenModList *zone) 0, /* 22 - freqModLFO */ 0, /* 23 - delayVibLFO */ 0, /* 24 - freqVibLFO */ - 0, /* 25 - delayModEnv */ - 0, /* 26 - attackModEnv */ - 0, /* 27 - holdModEnv */ - 0, /* 28 - decayModEnv */ - 0, /* 29 - sustainModEnv */ - 0, /* 30 - releaseModEnv */ - 0, /* 31 - keynumToModEnvHold */ - 0, /* 32 - keynumToModEnvDecay */ + AL_MOD_ENV_DELAYTIME_SOFT, /* 25 - delayModEnv */ + AL_MOD_ENV_ATTACKTIME_SOFT, /* 26 - attackModEnv */ + AL_MOD_ENV_HOLDTIME_SOFT, /* 27 - holdModEnv */ + AL_MOD_ENV_DECAYTIME_SOFT, /* 28 - decayModEnv */ + AL_MOD_ENV_SUSTAINVOLUME_SOFT, /* 29 - sustainModEnv */ + AL_MOD_ENV_RELEASETIME_SOFT, /* 30 - releaseModEnv */ + AL_MOD_ENV_KEY_TO_HOLDTIME_SOFT, /* 31 - keynumToModEnvHold */ + AL_MOD_ENV_KEY_TO_DECAYTIME_SOFT, /* 32 - keynumToModEnvDecay */ AL_VOLUME_ENV_DELAYTIME_SOFT, /* 33 - delayVolEnv */ AL_VOLUME_ENV_ATTACKTIME_SOFT, /* 34 - attackVolEnv */ AL_VOLUME_ENV_HOLDTIME_SOFT, /* 35 - holdVolEnv */ |