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: Josh Green
Subject: Re: [fluid-dev] invalid instrument/drum selection
Date: Sun, 15 Mar 2009 18:51:06 -0700

Hello Jimmy,

Sorry for the delay.  I looked over your proposed changes.  It doesn't
seem like that is really the proper place for them though (would affect
the default SoundFont loader only).

I went ahead and implemented this logic in fluid_synth_program_change.

This seems to satisfy basic preset fallback selection.  So I've closed
Ticket #23.  Please let me know if this functionality works as expected.

http://fluidsynth.resonance.org/trac/ticket/23

Best regards,
        Josh Green


On Sat, 2009-02-07 at 07:31 -0800, jimmy wrote:
> 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
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/fluid-dev





reply via email to

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