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



      


_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to