我正在尝试创建一个简单的程序,播放一些音符使用内部的Soundfont预设。为了做到这一点,我尝试使用NAudio。到目前为止,我已经成功地打开了一个SoundFont,并获得了所有仪器的名称、预设等:
NAudio.SoundFont.SoundFont sf = new NAudio.SoundFont.SoundFont("SoundFont.sf2");
MessageBox.Show(sf.Presets[0].Name); //Just looking at the first name现在,我希望能够使用这些声音字体播放声音,最终从midi播放,但现在,只有一个音符。我已经尝试了一些东西,但到目前为止还没有想出任何东西。
发布于 2013-12-17 19:26:36
NAudio可以从SoundFont文件中读取信息,但它不包括SoundFont引擎。为此,你需要一个好的音调变换算法,一些过滤器,一些声音管理,以及一个音序器,如果你想要播放MIDI文件。
我最接近于构建这样的东西的是我为我的NAudio Pluralsight课程制作的一个演示,在这个演示中,我基于一些钢琴音符录音构建了一个简单的样本钢琴。如果你是订阅者,你可以自由使用它。我使用的技术是将样本加载到内存中,将RawSourceWaveStream连接到它,将其转换为样本提供程序,然后根据我移植到用于this open source project的C#的提供程序,通过间距移位器样本提供程序传递它。
https://stackoverflow.com/questions/20624321
复制相似问题