对于从MIDI提取的每个音符,我都有一个变量列表(库号,音色,音符号,长度和速度),我想使用SoundFont根据这些变量从每个音符中生成正确的样本,因此SoundFont +变量会发出一个样本。我只需要wave数据,并且拥有NAudio库。 我可以使用FluidSynth为我生成样本吗?我看到FluidSynth有.net包装器,但我不知道如何实现。
我尝试自己制作能读取SoundFont的代码,但它没有得到正确的样本,并且缺少许多调制器和效果。真的很烂,我几乎无法使用。
SoundFont sf2 = new SoundFont(path);
WaveStream wave = ImportFromSoundFont(args, sf2);
答案 0 :(得分:1)
NAudio的SoundFont支持将仅告诉您SF2文件中的内容。它没有实现软件采样器,而FluidSynth正是该软件采样器。因此,您需要为FluidSynth使用.NET包装器,或者可以创建单个音符MIDI文件,然后生成命令行以通过FluidSynth将整个Midi文件渲染为WAV,并加载所需的SoundFont。我认为这可能是您想要的最简单的途径。