a-fluidsynth: query current bank/program after loading .sf2
authorRobin Gareus <robin@gareus.org>
Sun, 10 Sep 2017 14:06:16 +0000 (16:06 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 10 Sep 2017 14:06:16 +0000 (16:06 +0200)
libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc

index 0a7b501c04a00cab4a13597263b033daf3630d68..14e1ae4610e964b3948f3a5b2d6fdc82d175bc22 100644 (file)
@@ -218,6 +218,16 @@ load_sf2 (AFluidSynth* self, const char* fn)
                                self->program_state[chn].bank, self->program_state[chn].program);
        }
 
+       for (chn = 0; chn < 16; ++chn) {
+               unsigned int sfid = 0;
+               unsigned int bank = 0;
+               unsigned int program = -1;
+               if (FLUID_OK == fluid_synth_get_program (self->synth, chn, &sfid, &bank, &program)) {
+                       self->program_state[chn].bank = bank;
+                       self->program_state[chn].program = program;
+               }
+       }
+
        return true;
 }