2020-11-14 12:26:05 +00:00
|
|
|
/*!
|
|
|
|
|
|
|
|
\page MIDIPlayer Loading and playing a MIDI file
|
|
|
|
|
|
|
|
FluidSynth can be used to play MIDI files, using the MIDI File Player
|
|
|
|
interface. It follows a high level implementation, though its implementation
|
|
|
|
is currently incomplete. After initializing the synthesizer, create the
|
|
|
|
player passing the synth instance to new_fluid_player(). Then, you can add
|
|
|
|
some SMF file names to the player using fluid_player_add(), and finally call
|
|
|
|
fluid_player_play() to start the playback. You can check if the player has
|
|
|
|
finished by calling fluid_player_get_status(), or wait for the player to
|
|
|
|
terminate using fluid_player_join().
|
|
|
|
|
|
|
|
\code
|
|
|
|
#include <fluidsynth.h>
|
|
|
|
|
|
|
|
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();
|
|
|
|
synth = new_fluid_synth(settings);
|
|
|
|
player = new_fluid_player(synth);
|
|
|
|
/* process command line arguments */
|
|
|
|
for (i = 1; i < argc; i++) {
|
|
|
|
if (fluid_is_soundfont(argv[i])) {
|
|
|
|
fluid_synth_sfload(synth, argv[1], 1);
|
|
|
|
}
|
|
|
|
if (fluid_is_midifile(argv[i])) {
|
|
|
|
fluid_player_add(player, argv[i]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* start the synthesizer thread */
|
|
|
|
adriver = new_fluid_audio_driver(settings, synth);
|
|
|
|
/* play the midi files, if any */
|
|
|
|
fluid_player_play(player);
|
|
|
|
/* wait for playback termination */
|
|
|
|
fluid_player_join(player);
|
|
|
|
/* cleanup */
|
|
|
|
delete_fluid_audio_driver(adriver);
|
|
|
|
delete_fluid_player(player);
|
|
|
|
delete_fluid_synth(synth);
|
|
|
|
delete_fluid_settings(settings);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
|
|
|
|
A list of available <strong>MIDI player settings</strong> can be found in the
|
2020-11-14 13:56:18 +00:00
|
|
|
\setting{player} documentation.
|
2020-11-14 12:26:05 +00:00
|
|
|
|
|
|
|
*/
|