[分享]Debian 上播放 Midi 檔案

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

[分享]Debian 上播放 Midi 檔案

文章阿信 » 週六 2月 28, 2004 11:41 pm

Midi 是以電子琴或是吉他等設備所演奏出來的音樂,有別於一般 CD 唱片,Midi 只有音樂而已,但是受歡迎的程度可不亞於一般的唱片喔,小弟也是 Midi 的愛好者之一。

要播放 Midi 檔案,首先要有硬體支援,早期是音效卡透過外接 Midi 裝置達到播放的效果,目前音效卡有內建 Midi 音效處理晶片的只有 Sound Blaster Live,只要讀取官方所提供的 "聲音樣本",就能夠處理 Midi 合成。這麼說的話,沒有此音效卡就無法播放 Midi 了嗎?請不用擔心,以上所說的是以 "硬體" 直接播放來說明,反之,我們也可以使用 "軟體" 來處理播放 Midi 音效。

在 Linux 上常見的 Midi 音效播放程式為 Timidity,此程式在 Debian Testing/Unstable 皆有附,但有該軟體還不夠,還必須要有 timidity-patches,此套件包含了 timidity 對於各種樂器的補正文件,有了這些 patch 檔案資訊,timidity就能針對 midi 檔案對應的樂器加以模擬並播放出音樂來,很可惜的是 timidity-patches 只有在 stable 上,testing/unstable 並沒有,所以請另行安裝。

在此,小弟建議捨棄 timidity-patches 這個套件,請另外抓取 http://www.stardate.bc.ca/eawpatches/eawpats12_full.rar,然後解壓縮。小弟是解壓縮在 /usr/share/timidity/eawpats/ 之下,然後編輯 /etc/timidity.cfg 並加入以下設定內容:

代碼: 選擇全部
dir /usr/share/timidity/eawpats/
source gravis.cfg
source gsdrums.cfg
source gssfx.cfg
source xgmap2.cfg


OK!!!設定好了,準備播放 midi 檔案,由於 Timidity 在執行時需要設定 "輸出輸入",什麼是輸入呢?可以說是 User Interface Input,由於 Timidity 有許多個 User Interface,比如 gtk+,ncurse,X toolkit 等,可以在 timidity -h 中查閱,小弟便不詳述。輸出呢?可以指定 -Od:dsp device 直接輸出;-Os:ALSA PCM;-Oe:esound server;-Ol:ogg files,方法很多,小弟也不詳述,舉最簡單的例子來說。

1:以 gtk+ 為介面播放
代碼: 選擇全部
timidity -ig -Od your-midi.mid


相信喇叭中就會聽到許多好聽的音樂了。(想必您已經設定好音效卡了吧...:-))

2:以 aRts 為音效輸出
代碼: 選擇全部
artsdsp timidity -ig -Od your-midi.mid


KDE 中有 kmid 以及 kmidi 這兩個程式可以播放 midi 音樂,前者純粹是播放軟體,但必須搭配 ALSA,因為在編譯時以 ALSA 為主,也可以重新編譯成 OSS support。後者是 timidity 的另一個介面,可以做到 midi to wav 的功能,但播放便不建議使用,因為 kmidi 是即時轉換 midi to wav 然後在播放,所以需要快速的 CPU 才不會停滯,建議還是用上述介紹的方式播放 midi 檔案即可。

timidity 也可以 Server 的方式啟動,可以搭配 ALSA 有不錯的效能,但無法與 sound server 相容,只能擇其一。

底下有一篇關於 ALSA 與 midi 的介紹,相信您會得到更多幫助。
http://www.tldp.org/linuxfocus/ChineseG ... e259.shtml
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:[分享]Debian 上播放 Midi 檔案

文章zero0w » 週四 3月 04, 2004 9:34 pm

Timidity 的 latency 和音色效果或會有點不足,可以考慮使用 fluidsynth (需要 ALSA):

http://www.fluidsynth.org/

安裝後可以這樣載入 soundfont:
$ fluidsynth -m alsa_seq ./mysoundfont.sf2

當然 SB AWE32-64/Live/Audigy 可以直接使用 sfxload / asfxload 了;因為其本身在硬件上就直接支援 MIDI 和 Soundfont。
zero0w
懵懂的國中生
懵懂的國中生
 
文章: 189
註冊時間: 週日 2月 15, 2004 3:38 am

文章訪客 » 週一 2月 12, 2007 7:28 am

我查到這個網頁(http://mrtg2.tnc.edu.tw/xoops/html/modu ... mment10109)
有提供 firefox 播放 midi 的 plugin (利用 timidity).
我安裝完後
在about:plugins 裡有看到"MozPlugger 1.7.3 handles QuickTime Windows Media Player Plugin" 資訊, 但 依然無法直接在firefox 2 裡聽到聲音.
可是 用 `timidity xxx.mid' 可以聽到聲音. 請問 是否還有那裡該修改 才可以用 firefox 直接播 midi 檔呢?

謝謝.
訪客
 


回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客