I'm using FluidSynth 1.1.6, and I've come upon
an...interesting issue.
int event_callback(void *data, fluid_midi_event_t *event)
{
int type = fluid_midi_event_get_type(event);
if (type == NOTE_OFF) puts("123");
return fluid_synth_handle_midi_event(data, event);
}
int main(int argc, char** argv) {
int i;
fluid_settings_t* settings;
fluid_synth_t* synth;
fluid_player_t* player;
fluid_audio_driver_t* adriver;
settings = new_fluid_settings();
fluid_settings_setstr(settings, "audio.driver",
"alsa");
fluid_settings_setstr(settings,
"player.timing-source", "system");
synth = new_fluid_synth(settings);
player = new_fluid_player(synth);
adriver = new_fluid_audio_driver(settings, synth);
assert(fluid_synth_sfload(synth,
"/usr/share/sounds/sf2/FluidR3_GM.sf2", 1) != FLUID_FAILED);
assert(fluid_player_add(player,
"/home/ryan/Documents/piano_req.midi.mid") != FLUID_FAILED);
fluid_player_play(player);
fluid_player_join(player);
delete_fluid_audio_driver(adriver);
delete_fluid_player(player);
delete_fluid_synth(synth);
delete_fluid_settings(settings);
return 0;
}
The weird part is that nothing ever gets printed out.
I hear the notes being played, and the NOTE_ON events are
being sent correctly. However, when I hear the notes end, I
get another NOTE_ON event. No NOTE_OFFs are ever sent. Am I
missing something??
Thanks is advance! :)
--
Ryan
[ERROR]: Your autotools build scripts
are 200 lines longer than your program.
Something’s wrong.