流体合成  1.1.11
example.c

使用FluidSynth制作短随机音乐的示例

/ *
如何使用FluidSynth的示例。
要在Linux上编译它:
$ gcc -o example example.c`pkg-config fluidsynth --libs`
在Windows上进行编译:
...
作者:Peter Hanappe。
此代码在公共领域。随便使用。
* /
#包括<fluidsynth.h>
#如果已定义(WIN32)
#包括<windows.h>
#定义睡眠(_t)睡眠(_t * 1000)
#其他
#包括<stdlib.h>
#万一
整型 主要(整型 argc, 烧焦** argv)
{
fluid_settings_t*设置;
fluid_synth_t*合成器;
fluid_audio_driver_t* 一个司机;
整型 sfont_id;
整型 我,关键;
/ *创建设置。 * /
设置= new_fluid_settings();
/ *如有必要,更改设置* /
/ *创建合成器。 * /
合成= new_fluid_synth(设置);
/ *创建音频驱动程序。合成器立即开始播放
创建驱动程序时。 * /
驱动程序= new_fluid_audio_driver(设置,合成器);
/ *加载SoundFont并重置预设(以便新乐器
*从SoundFont使用)* /
sfont_id = fluid_synth_sfload(合成器, "example.sf2", 1);
/ *初始化随机数生成器* /
srand(getpid());
对于 (i = 0;我< 12; i++) {
/ *生成随机密钥* /
键= 60 +(int)(12.0f * rand()/(float)RAND_MAX);
/ *播放笔记* /
fluid_synth_noteon(synth,0,key,80);
/ *睡眠1秒* /
睡眠(1);
/ *停止记事* /
fluid_synth_noteoff(synth,0,key);
}
/ * 清理 * /
delete_fluid_audio_driver(一个司机);
delete_fluid_synth(合成);
delete_fluid_settings(设置);
返回 0;
}