fluid-dev
[Top][All Lists]
Advanced

[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



      




reply via email to

[Prev in Thread] Current Thread [Next in Thread]