aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/midi
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2013-12-29 05:09:50 -0800
committerChris Robinson <[email protected]>2013-12-29 05:09:50 -0800
commit4e73b95fc05b85da550910318df6c04eb21edc4d (patch)
tree6f1a6a242e6ed33b1ea517e5799783c5c4a80939 /Alc/midi
parent4c35f7c63243c7ffa251047074d44e6073edb435 (diff)
Add the last remaining "real-time" properties
Diffstat (limited to 'Alc/midi')
-rw-r--r--Alc/midi/base.c13
-rw-r--r--Alc/midi/fluidsynth.c6
-rw-r--r--Alc/midi/sf2load.c12
3 files changed, 23 insertions, 8 deletions
diff --git a/Alc/midi/base.c b/Alc/midi/base.c
index 82e35a9d..b726f47b 100644
--- a/Alc/midi/base.c
+++ b/Alc/midi/base.c
@@ -303,12 +303,19 @@ void ALfontsound_Construct(ALfontsound *self)
self->FilterQ = 0;
self->ModLfoToFilterCutoff = 0;
self->ModEnvToFilterCutoff = 0;
-
- self->Pan = 0;
+ self->ModLfoToVolume = 0;
self->ChorusSend = 0;
self->ReverbSend = 0;
+ self->Pan = 0;
+
+ self->ModLfo.Delay = 0;
+ self->ModLfo.Frequency = 0;
+
+ self->VibratoLfo.Delay = 0;
+ self->VibratoLfo.Frequency = 0;
+
self->ModEnv.DelayTime = -12000;
self->ModEnv.AttackTime = -12000;
self->ModEnv.HoldTime = -12000;
@@ -336,6 +343,8 @@ void ALfontsound_Construct(ALfontsound *self)
self->TuningScale = 100;
+ self->ExclusiveClass = 0;
+
self->Start = 0;
self->End = 0;
self->LoopStart = 0;
diff --git a/Alc/midi/fluidsynth.c b/Alc/midi/fluidsynth.c
index 944b7b8f..697a95c8 100644
--- a/Alc/midi/fluidsynth.c
+++ b/Alc/midi/fluidsynth.c
@@ -170,9 +170,14 @@ static int FPreset_noteOn(fluid_preset_t *preset, fluid_synth_t *synth, int chan
fluid_voice_gen_set(voice, 9, sound->FilterQ);
fluid_voice_gen_set(voice, 10, sound->ModLfoToFilterCutoff);
fluid_voice_gen_set(voice, 11, sound->ModEnvToFilterCutoff);
+ fluid_voice_gen_set(voice, 13, sound->ModLfoToVolume);
fluid_voice_gen_set(voice, 15, sound->ChorusSend);
fluid_voice_gen_set(voice, 16, sound->ReverbSend);
fluid_voice_gen_set(voice, 17, sound->Pan);
+ fluid_voice_gen_set(voice, 21, sound->ModLfo.Delay);
+ fluid_voice_gen_set(voice, 22, sound->ModLfo.Frequency);
+ fluid_voice_gen_set(voice, 23, sound->VibratoLfo.Delay);
+ fluid_voice_gen_set(voice, 24, sound->VibratoLfo.Frequency);
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);
@@ -194,6 +199,7 @@ static int FPreset_noteOn(fluid_preset_t *preset, fluid_synth_t *synth, int chan
fluid_voice_gen_set(voice, 52, sound->FineTuning);
fluid_voice_gen_set(voice, 54, sound->LoopMode);
fluid_voice_gen_set(voice, 56, sound->TuningScale);
+ fluid_voice_gen_set(voice, 57, sound->ExclusiveClass);
for(m = 0;m < sample->NumMods;m++)
fluid_voice_add_mod(voice, &sample->Mods[m], FLUID_VOICE_OVERWRITE);
diff --git a/Alc/midi/sf2load.c b/Alc/midi/sf2load.c
index af342a9e..5fb71893 100644
--- a/Alc/midi/sf2load.c
+++ b/Alc/midi/sf2load.c
@@ -807,7 +807,7 @@ static void fillZone(ALuint id, const GenModList *zone)
AL_MOD_LFO_TO_FILTER_CUTOFF_SOFT, /* 10 - modLfoToFilterFc */
AL_MOD_ENV_TO_FILTER_CUTOFF_SOFT, /* 11 - modEnvToFilterFc */
0, /* 12 - endAddrCoarseOffset */
- 0, /* 13 - modLfoToVolume */
+ AL_MOD_LFO_TO_VOLUME_SOFT, /* 13 - modLfoToVolume */
0, /* 14 - */
AL_CHORUS_SEND_SOFT, /* 15 - chorusEffectsSend */
AL_REVERB_SEND_SOFT, /* 16 - reverbEffectsSend */
@@ -815,10 +815,10 @@ static void fillZone(ALuint id, const GenModList *zone)
0, /* 18 - */
0, /* 19 - */
0, /* 20 - */
- 0, /* 21 - delayModLFO */
- 0, /* 22 - freqModLFO */
- 0, /* 23 - delayVibLFO */
- 0, /* 24 - freqVibLFO */
+ AL_MOD_LFO_DELAY_SOFT, /* 21 - delayModLFO */
+ AL_MOD_LFO_FREQUENCY_SOFT, /* 22 - freqModLFO */
+ AL_VIBRATO_LFO_DELAY_SOFT, /* 23 - delayVibLFO */
+ AL_VIBRATO_LFO_FREQUENCY_SOFT, /* 24 - freqVibLFO */
AL_MOD_ENV_DELAYTIME_SOFT, /* 25 - delayModEnv */
AL_MOD_ENV_ATTACKTIME_SOFT, /* 26 - attackModEnv */
AL_MOD_ENV_HOLDTIME_SOFT, /* 27 - holdModEnv */
@@ -851,7 +851,7 @@ static void fillZone(ALuint id, const GenModList *zone)
AL_LOOP_MODE_SOFT, /* 54 - sampleModes */
0, /* 55 - */
AL_TUNING_SCALE_SOFT, /* 56 - scaleTuning */
- 0, /* 57 - exclusiveClass */
+ AL_EXCLUSIVE_CLASS_SOFT, /* 57 - exclusiveClass */
AL_BASE_KEY_SOFT, /* 58 - overridingRootKey */
0, /* 59 - */
};