[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [fluid-dev] invalid instrument/drum selection
From: |
jimmy |
Subject: |
Re: [fluid-dev] invalid instrument/drum selection |
Date: |
Sat, 7 Feb 2009 07:31:35 -0800 (PST) |
Hi Josh,
One more try. This also takes care of drum bank 128 fallback. Here is
fluid_defsfont.c : fluid_defsfont_get_preset()
>>>>>
fluid_defpreset_t* fluid_defsfont_get_preset(fluid_defsfont_t* sfont, unsigned
int bank, unsigned int num)
{
fluid_defpreset_t* preset = sfont->preset;
fluid_defpreset_t* fallback_preset = NULL;
while (preset != NULL) {
if (num == preset->num) {
if ((preset->bank == bank)) {
return preset;
}
if ((128 != bank) && (0 == preset->bank)) {
fallback_preset = preset;
}
}
if ((128 == bank) && (0 == preset->num)) {
fallback_preset = preset;
}
preset = preset->next;
}
if (( fallback_preset != NULL )) {
FLUID_LOG(FLUID_WARN, " --- fluid_defsfont_get_preset: no instrument found
for [bank, prog: %d, %d], substituted with: [bank, prog: %d, %d]", bank, num,
fallback_preset->bank, fallback_preset->num );
return fallback_preset;
}
return NULL;
}
<<<<<
Please don't forget
fluid_ramsfont.c : fluid_ramsfont_get_preset()
Best regards,
Jimmy