流体合成  1.1.11
fluidsynth_simple.c

使用Fluidsynth演奏单个音符的基本示例

/ * FluidSynth Simple-使用Fluidsynth的示例
*
*此代码在公共领域。
*
* 编译:
* gcc -g -O -o fluidsynth_simple fluidsynth_simple.c -lfluidsynth
*
* 跑步
* fluidsynth_simple声音字体
*
* [Peter Hanappe]
* /
#包括<stdio.h>
#包括<fluidsynth.h>
整型 主要(整型 argc, 烧焦** argv)
{
fluid_settings_t*设置;
fluid_synth_t* 合成= NULL;
fluid_audio_driver_t* 驱动程序= NULL;
整型 四川福利彩票开奖查询 = 0;
如果 (argc!= 2){
fprintf(std四川福利彩票开奖查询, "用法:fluidsynth_simple [soundfont] \ n");
返回 1;
}
/ *创建设置对象。本示例使用默认
*设置值。 * /
设置= new_fluid_settings();
如果 (设置== NULL){
fprintf(std四川福利彩票开奖查询, "无法创建设置\ n");
四川福利彩票开奖查询 = 2;
清理;
}
/ *创建合成器* /
合成= new_fluid_synth(设置);
如果 (合成== NULL){
fprintf(std四川福利彩票开奖查询, "无法创建合成器\ n");
四川福利彩票开奖查询 = 3;
清理;
}
/ *加载soundfont * /
如果 (fluid_synth_sfload(synth,argv [1],1)== -1){
fprintf(std四川福利彩票开奖查询, "无法加载SoundFont \ n");
四川福利彩票开奖查询 = 4;
清理;
}
/ *创建音频驱动程序。音频驱动程序一经启动
*创建后,可以播放合成器。 * /
驱动程序= new_fluid_audio_driver(设置,合成器);
如果 (adriver == NULL){
fprintf(std四川福利彩票开奖查询, "创建音频驱动程序失败\ n");
四川福利彩票开奖查询 = 5;
清理;
}
/ *播放笔记* /
fluid_synth_noteon(synth,0,60,100);
printf("Press \"Enter\" to stop: ");
fgetc(stdin);
printf("done\n");
清理:
如果 (一个司机) {
delete_fluid_audio_driver(一个司机);
}
如果 (合成){
delete_fluid_synth(合成);
}
如果 (设置){
delete_fluid_settings(设置);
}
返回 呃;
}