example.c
上传用户:tjmskj2
上传日期:2020-08-17
资源大小:577k
文件大小:2k
- /*
- An example of how to use FluidSynth.
- To compile it on Linux:
- $ gcc -o example example.c `pkg-config fluidsynth --libs`
- To compile it on Windows:
- ...
- Author: Peter Hanappe.
- This code is in the public domain. Use it as you like.
- */
- #include <fluidsynth.h>
- #if defined(WIN32)
- #include <windows.h>
- #define sleep(_t) Sleep(_t * 1000)
- #else
- #include <stdlib.h>
- #endif
- int main(int argc, char** argv)
- {
- fluid_settings_t* settings;
- fluid_synth_t* synth;
- fluid_audio_driver_t* adriver;
- int sfont_id;
- int i, key;
- /* Create the settings. */
- settings = new_fluid_settings();
- /* Change the settings if necessary*/
- /* Create the synthesizer. */
- synth = new_fluid_synth(settings);
- /* Create the audio driver. The synthesizer starts playing as soon
- as the driver is created. */
- adriver = new_fluid_audio_driver(settings, synth);
- /* Load a SoundFont and reset presets (so that new instruments
- * get used from the SoundFont) */
- sfont_id = fluid_synth_sfload(synth, "example.sf2", 1);
- /* Initialze the random number generator */
- srand(getpid());
- for (i = 0; i < 12; i++) {
- /* Generate a random key */
- key = 60 + (int) (12.0f * rand() / (float) RAND_MAX);
- /* Play a note */
- fluid_synth_noteon(synth, 0, key, 80);
- /* Sleep for 1 second */
- sleep(1);
- /* Stop the note */
- fluid_synth_noteoff(synth, 0, key);
- }
- /* Clean up */
- delete_fluid_audio_driver(adriver);
- delete_fluid_synth(synth);
- delete_fluid_settings(settings);
- return 0;
- }