ARDOUR::FluidSynth automatically assign first 16 channels
authorRobin Gareus <robin@gareus.org>
Wed, 24 Aug 2016 03:31:30 +0000 (05:31 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 24 Aug 2016 03:31:30 +0000 (05:31 +0200)
libs/ardour/fluid_synth.cc

index df856af5613c16fedd686a6eb2d007eda588d42d..2978e48181e32b56700cf5de97190f615c20ab11 100644 (file)
@@ -75,6 +75,9 @@ FluidSynth::load_sf2 (const std::string& fn)
 
         sfont->iteration_start (sfont);
         for (count = 0; sfont->iteration_next (sfont, &preset) != 0; ++count) {
+                if (count < 16) {
+                        fluid_synth_program_select (_synth, count, _synth_id, preset.get_banknum (&preset), preset.get_num (&preset));
+                }
                 _presets.push_back (BankProgram (
                                         preset.get_name (&preset),
                                         preset.get_banknum (&preset),
@@ -85,8 +88,6 @@ FluidSynth::load_sf2 (const std::string& fn)
                 return false;
         }
 
-        select_program (0, 0);
-
         return true;
 }