其實尋找這種方法的初衷是因為我想用cakewalk的sonar來編輯MIDI,但sonar只支持DXi格式的插件,不支持VSTi。雖然有轉換工具,但是似乎很不完善,幾乎不能正常使用。后來就轉而尋找能把vst插件變成系統的MIDI輸出設備的程序,最后還是沒有找到,倒是在一個叫SynthFont的程序里面得到了提示,找到了一種新的方法。
這種方法需要兩類軟件。第一類是一種叫做“虛擬MIDI電纜”的東西;第二類是支持將系統的MIDI輸入口作為信號源的VST Host(VST宿主)。其實兩種東西都好找,選擇也挺多的,有商業軟件也有免費軟件。“虛擬MIDI電纜”這種東西可以在計算機內部“虛擬”出一條或多條MIDI電纜。這些“電纜”是看不見的,它們只會讓你看到你的MIDI設備列表那里增加的一大堆輸入輸出端口。利用這些虛擬的電纜可以將應用程序的MIDI輸入輸出連接起來,比如將播放軟件的MIDI輸出設置為虛擬電纜的輸入端,然后將虛擬電纜的輸出端設置為VST Host的輸入端,這樣MIDI就能通過VST Host播放出來了。這就是這種解決方案的基本原理。可用以下圖片進行表示:
目前網上可以找到若干款虛擬電纜,它們基本上是免費的。我分別測試了Maple Virtual Midi Cable, Sonic Foundry Virtual MIDI Router, Loopbe1和MIDI Yoke,覺得這些軟件各有優缺點,很遺憾,沒有一款是比較完美的。MIDI Yoke的兼容性總體而言不錯,在我的Windows xp下工作十分正常,不過在一臺Windows 2003下就出現了MIDI數據丟失的現象(似乎在XP下也偶爾會出現-_-)。而Sonic的那款雖然不支持feedback檢測,但是在2003下卻能正常工作。順便提一下,所謂feedback,是指這樣的一種現象:一些同時支持MIDI in和MIDI out的程序,比如大部分的MIDI編輯程序,如果將其MIDI輸入和輸出設備都設為同一條虛擬通道,相當于把通道的輸入端和輸出端接在了一起,那么就會在這條通道上產生“回嘯”。由于數據不斷在通道上不斷循環增加,最終將榨干系統的最好一點資源——我在那臺2003上試過一次,結果把系統搞得半死,所以除非想不開否則千萬別試圖在你的程序中將MIDI輸入和輸出設備都設為同一組虛擬通道。
總之,我的建議是在Windows NT/2k/xp等系統下,可以先嘗試MIDI Yoke。通過它來播放幾首MIDI,聽聽是不是跟手機上的播放效果一樣,如果差別比較明顯,那就換其它的試試。注意,本文的講解都將以MIDI Yoke為例。如果是98/ME,雖然MIDI Yoke也有對應的版本,不過網上一般都是推薦使用Hubi's MIDI LoopBack device。我沒嘗試過,哪位同學有興趣的可以試試當小白鼠……
至于支持MIDI IN的VST Host,網上就多如牛毛,簡直跟夏天宿舍里打不完的蚊子同一個數量級了。但是我們不需要太多稀奇古怪的花俏功能,我們只需要一個功能越簡單越好最好簡單得很石器時代的VST Host。老天爺沒有拋棄俺,終于讓俺找到了一個叫SAVIHost的。SAVIHost長得小巧可愛,該有的功能都有了,而且能在98和ME下跑,我使用至今,雖然有一些惱人的小BUG,但還算感覺良好。
OK,主角都登場了,現在介紹一下怎么將這一鍋亂七八糟的東西攪在一起。
首先就是要安裝虛擬MIDI電纜程序。MIDI Yoke的安裝分為手動或自動兩種,一般采用方便快捷的手動安裝即可。具體安裝方法可以參考軟件附帶的文檔。
安裝完畢后,在控制面板里的“聲音和音頻設備”中的“音頻”標簽頁里即可看到在“MIDI 音樂播放”中多出來了幾個MIDI設備,這些就是虛擬MIDI電纜的輸入端口了。可以看到,MIDI Yoke虛擬了8個MIDI通道,不過我們只需要一個就足夠了。
如果在這里將“MIDI Yoke NT: 1”設為默認設備,則以后就可以將SAVIHost作為默認的MIDI輸出音源了。也就是說,無論是通過Windows Media Player播放的MIDI文件,還是瀏覽網頁時IE播放的MIDI文件,都會通過SAVIHost以OT756的音色播放出來。這樣我們在網上下載鈴聲時,就能很方便地試聽到鈴聲在手機上的播放效果了。當然,現在暫時還實現不了,因為必須先繼續進行下面的步驟。
SAVIHost的使用很簡單,只需要把它跟756的vst插件放在同一個文件夾下,并改成相同的文件名即可。即756的vst插件文件名是OneTouch756.dll,則只需要把下載回來的savihost.exe改名為OneTouch756.exe即可。我在文末提供了一個已改好名的壓縮包,下載回來解壓后直接運行里面的OneTouch756.exe即可。
然后雙擊OneTouch756.exe,即可啟動程序。程序啟動后會自動載入756的VST插件,跟Cubase中載入插件一樣,會出現一個藍色版的OT756。
首先要對它進行一些設置。點擊菜單Devices->MIDI,Input Port那里選擇前面音頻設置那里對應的MIDI通道。即如果前面選擇的是“MIDI Yoke NT: 1”,這里也選擇同樣的。
實際上這個就是虛擬MIDI通道的輸出端口。MIDI數據通過這個端口輸出到SAVIHost中,SAVIHost通過調用OT756的VST插件,將MIDI數據轉換為音頻播放出來。
另外,如果機器性能不夠強勁,播放時可能聲音會有點爆音或不連續,可以在Devices->Wave菜單項中更改音頻輸出設置。如果你的聲卡比較牛,可能會有ASIO驅動,在Output Port那里選擇ASIO端口可以降低延遲,沒有的話就用默認的設置吧。然后是Buffer(輸出緩沖),這個值太大會增加延遲,太小的話就會因CPU處理不及時而產生爆音。因為我們對實時性要求不是很高,這個值可以設高點,以保證播放質量。
另外,在Engine->PRiority里,可以設置程序的優先級。將其設高點可以提高性能。
此外,還需要在Effect->Filter里面過濾一些事件,以提高兼容性。可以直接導入壓縮包中的注冊表文件OneTouch756.reg進行設置。
這樣,基本的設置就完成了。有興趣的朋友可以研究一下它的其它菜單項,反正并不是很復雜,這里就不再羅嗦了。設置完成后,關閉SAVIHost,它會自動保持設置,下次再運行時就不用重新進行設置了。今后,我們要做的事就是雙擊OneTouch756.exe運行它,然后最小化它,然后在有需要的時候關閉并重新運行它(事實上,經常要這么做……)
接下來,找一首你已經在手機上聽過n遍的midi,用一款你熟悉的播放器,聽聽在電腦上和在手機上音色是不是差不多。是的話說明前面的活沒白干,終于成功地把你的電腦變成了一臺OT756的MIDI合成器:) 如果有點不一樣也不用擔心,一是電腦的音頻系統好很多,所以出來的聲音自然跟手機那個小喇叭出來的有點不一樣。二是鼓聲的問題,不知為何,手機上的鼓聲基本上是錯亂不正常的,甚至有的鼓聲是爆音,而SAVIHost的鼓聲則是正常的,難道是聲音芯片的bug?三是軟件自身的問題,播放幾首MIDI后就會無法正常復位,必須要關閉SAVIHost然后重新運行,才能讓聲音恢復正常。如果是很不一樣或者完全沒有聲音出來,那么就回頭檢查一下各個地方的設置有沒有錯誤吧。
最后還要提醒的是,千萬不要在同一個程序里把MIDI輸入和輸出設成同一個MIDI通道,以免造成Feedback。如這種設置就是極其危險的:
附:
SAVIHost及OT756、OT735插件下載地址:
http://ohfaint.3322.org/ot756/bin.rar
MIDI Yoke NT下載地址(附安裝說明):
http://ohfaint.3322.org/ot756/myokent172.rar
Sonic Foundry Virtual MIDI Router下載地址(附安裝說明):
http://ohfaint.3322.org/ot756/SFVMR.rar
SAVIHost的主頁:
http://www.hermannseib.com/english/savihost.htm
Loopbe1的主頁:
http://www.nerds.de/en/loopbe1.html
Hubi's MIDI LoopBack device主頁:
http://members.magnet.at/hubwin/midi.html
MIDI Yoke的主頁:
http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm
新聞熱點
疑難解答
圖片精選