我正在使用NAudio在我的.NET项目中播放MIDI文件。
我想播放一些MIDI曲目(特别是鼓声循环),因此每个声音都映射到某个 wav 或 mp3 文件。那可能吗?
我是MIDI开发的新手,我刚刚听说过 SoundFont 的想法,这是我正在寻找的吗?
以前有人试过吗?
更新
这不是我有那些波形文件,我只是讨厌计算机上默认MIDI设备的声音。
也许我只需要一张更好的声卡,或者可能有一个具有专业音调的虚拟MIDI设备。
更新
在阅读SoundFont后,我几乎可以肯定这是我正在寻求的解决方案。问题是如何将它与NAudio一起使用。
答案 0 :(得分:1)
为此,您需要一个软件合成器,它可以将MIDI音符转换为PCM音频。一些软件合成器使用你提到的声音字体,其他人使用样本,其他软件合成器使用振荡器或物理建模生成声音。
NAudio不包括软件合成器,构建一个并不是一项微不足道的任务(需要了解滤波器,重采样,振荡器,DSP等)。您可能会发现最好的方法是将NAudio与VST.net结合使用。这将允许您加载任何VST软件乐器(其中there are thousands,包括商业和免费),将您的MIDI传递给它,并使用NAudio将结果声音写入文件。
话虽如此,如果您只需要一个简单的鼓音序器,NAudio WPF演示确实包含了播放鼓样本的示例。