2013-12-17 60 views
3

我想创建一个简单的程序,使用Soundfont中的预设播放一些音符。为此,我尝试使用NAudio。到目前为止,我已经能够成功地打开一个音色库,并获得所有的乐器,预置等:使用SoundFonts和NAudio播放MIDI文件

NAudio.SoundFont.SoundFont sf = new NAudio.SoundFont.SoundFont("SoundFont.sf2"); 
MessageBox.Show(sf.Presets[0].Name); //Just looking at the first name 

现在我希望能够发挥使用这些声音的SoundFonts的名字,从端midi,但现在,只是一个音符。我玩过几件事,但到目前为止还没有提出任何事情。

+0

不要将Google搜索用作问题的标题。把你的实际问题放在那里。避免在问题标题中加入标签。避免请求帮助解决您的问题(特别是针对特定用户的请求);我们已经知道你在这里寻求帮助。 –

+0

啊,对@罗伯特哈维抱歉。我只是因为他是创造者才提到用户。 – SuperPrograman

+0

如果您有他的电子邮件地址,请将他指向此问题,或在他的某个帖子下方发表礼貌评论。如果你把他的名字写在你的问题上,他不会得到通知。不要忽视我给你的其他建议。 :) –

回答

4

NAudio可以从SoundFont文件中读取信息,但不包含SoundFont引擎。为此,如果您想播放MIDI文件,您需要一个良好的音调转换算法,一些滤波器和一些语音管理,以及一个音序器。

最接近我建立这样的东西是我为我的NAudio Pluralsight课程做的一个演示,其中我建立了一个基于一些钢琴音符录音的简单采样钢琴。如果你是订阅者,你可以自由使用它。我使用的技术是将样本加载到内存中,将RawSourceWaveStream连接到它,将其转换为示例提供程序,然后将它传递给基音移位器示例提供程序,基于移植到C#的this open source project