2013-12-17 85 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