API change: expose session-archive compression-level
[ardour.git] / libs / ardour / fluid_synth.cc
index 3c013dd00daec3474e6f06ea9ee59b45bb321b43..45653a9e7046ca813c136c93428014edc4efe05f 100644 (file)
@@ -93,9 +93,9 @@ FluidSynth::load_sf2 (const std::string& fn)
         */
        float l[1024];
        float r[1024];
-       fluid_synth_all_notes_off (self->synth, -1);
-       fluid_synth_all_sounds_off (self->synth, -1);
-       fluid_synth_write_float (self->synth, 1024, l, 0, 1, r, 0, 1);
+       fluid_synth_all_notes_off (_synth, -1);
+       fluid_synth_all_sounds_off (_synth, -1);
+       fluid_synth_write_float (_synth, 1024, l, 0, 1, r, 0, 1);
 
        return true;
 }
@@ -135,7 +135,12 @@ FluidSynth::midi_event (uint8_t const* const data, size_t len)
                fluid_midi_event_set_key (_f_midi_event, data[1]);
        }
        if (len > 2) {
-               fluid_midi_event_set_value (_f_midi_event, data[2]);
+               if (0xe0 /*PITCH_BEND*/ == fluid_midi_event_get_type (_f_midi_event)) {
+                       fluid_midi_event_set_value (_f_midi_event, 0);
+                       fluid_midi_event_set_pitch (_f_midi_event, ((data[2] & 0x7f) << 7) | (data[1] & 0x7f));
+               } else {
+                       fluid_midi_event_set_value (_f_midi_event, data[2]);
+               }
        }
        return FLUID_OK == fluid_synth_handle_midi_event (_synth, _f_midi_event);
 }