如何使用流体合成器从 C# 中的声音字体生成声音
Posted
技术标签:
【中文标题】如何使用流体合成器从 C# 中的声音字体生成声音【英文标题】:How to generate sound from a soundfont in C# with fluidsynth 【发布时间】:2019-08-10 22:16:07 【问题描述】:我有一个变量列表 [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);
【问题讨论】:
【参考方案1】:NAudio 的 SoundFont 支持只会告诉您 SF2 文件中的内容。它没有实现软件采样器,这就是 FluidSynth。因此,您需要为 FluidSynth 使用 .NET 包装器,或者,您可以创建单音符 MIDI 文件,然后生成命令行以通过 FluidSynth 将整个 MIDI 文件渲染为 WAV,并加载所需的 SoundFont。我认为这可能是实现您想要的最简单的途径。
【讨论】:
以上是关于如何使用流体合成器从 C# 中的声音字体生成声音的主要内容,如果未能解决你的问题,请参考以下文章