fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] defaulting to bank 0 and preset 0 on startup in fluid l


From: josh
Subject: Re: [fluid-dev] defaulting to bank 0 and preset 0 on startup in fluid library
Date: Wed, 28 Oct 2009 16:20:09 -0700
User-agent: Internet Messaging Program (IMP) H3 (4.1.6)

Consider it done.  Thanks for pointing this out.

Josh

Quoting "Louis B." <address@hidden>:

Yep, chaining the example I think would be a good idea as this I think
that is a better default (as I followed the example rather blindly
when writing my code -- but it was _very_ easy to integrate with Piano
Booster) Starting up fluid synth is then more like turning on a
hardware synth -- you always hear a sound even if you don't send a
program change first.

Louis

On Wed, Oct 28, 2009 at 8:04 PM,  <address@hidden> wrote:
Hello Louis,

Quoting "Louis B." <address@hidden>:

Hi All,

I have another small change I would like to see in the next release  if
possible.

when commenting out the following line 51 from example.c no sound is
produced

 /* Select bank 0 and preset 0 in the SoundFont we just loaded on
    channel 0 */
 //fluid_synth_program_select(synth, 0, sfont_id, 0, 0);

I believe that the system should default to bank 0 and preset 0 when a
sound font is first loaded. Some midi files forget to set a preset
especially single piano pieces. This caught me out a few times and I
had to add the following code to my start up.
   for (int channel = 0; channel < MAX_MIDI_CHANNELS ; channel++)
   {
       fluid_synth_program_change(m_synth, channel, GM_PIANO_PATCH);
   }

However the standalone version of fluidsynth does not have this
problem and defaults to preset 0.



I think it does default to bank 0 preset 0 on all channels.  The issue is
actually with the fluid_synth_sfload() call in the example code.  The 3rd
parameter is called reset_presets.  If its FALSE then no instrument changes
are made on any MIDI channels.  If TRUE then all MIDI channels are refreshed
(as if they had bank/program change messages sent) which may cause new
instruments to get used from the loaded SoundFont.  Perhaps the example
should just be changed to pass TRUE as the 3rd parameter.



Thanks

Louis


Regards,
Josh










reply via email to

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