0

我有一个变量列表 [bank number, patch number, note number, length and velocity] 用于预先从 MIDI 中提取的每个音符,我想使用 SoundFont 根据这些变量从每个音符生成正确的样本,所以SoundFont + 变量吐出一个样本。我只需要波形数据,我有 NAudio 库。我可以使用 FluidSynth 为我生成样本吗?我看到有 FluidSynth 的 .net 包装器,但我不知道如何实现它。

我尝试自己编写代码来读取 SoundFont,但它没有得到正确的样本,并且它缺少许多调制器和效果。这真的很糟糕,我几乎没有让它工作。

SoundFont sf2 = new SoundFont(path);
WaveStream wave = ImportFromSoundFont(args, sf2);
4

1 回答 1

2

NAudio 的 SoundFont 支持将简单地告诉您 SF2 文件中的内容。它没有实现软件采样器,FluidSynth 就是这样。因此,您需要为 FluidSynth 使用 .NET 包装器,或者,您可以创建单音符 MIDI 文件,然后生成命令行以通过 FluidSynth 将整个 MIDI 文件渲染为 WAV,并加载所需的 SoundFont。我认为这可能是实现您想要的最简单的途径。

于 2019-08-14T18:55:37.393 回答