Play Sound using Virtual MIDI Piano Keyboard

其實主要步驟只要照著 Compdigitec Labs 的這篇 Virtual MIDI Keyboard In Ubuntu 作即可.

不過實際上在我的系統上有些微的不同. 因為對整個 Sound System 不熟悉, 沒有辦法理解是怎麼回事, 姑且記下來當作 "這樣設定也可以" 看吧.

先記一下安裝的部份, 共需要 ( Package Name 以 Mandriva 2010.1 上的為準 ) :

1. qjackctl ( JACK Audio Connection Kit )
2. zynaddsubfx ( ZynAddSubFx )
3. vmpk ( Virtual MIDI Piano Keyboard )

其中 vmpk 是要作為虛擬 MIDI 鍵盤的主介面. 雖然後來發現 ZynAddSubFx 也有虛擬鍵盤介面, 但是變更 Keyboard Map 設定跟其他各種設定上, 感覺 vmpk 比 ZynAddSubFx 來的方便.

而 qjackctl 是 Connection 控制器, 負責把 vmpk 作為前端介面, 輸出的 MIDI 資料導引到 ZynAddSubFx, 再到實體的音效硬體/音效卡作播出. 因為 vmpk 本身其實就是單純的虛擬鍵盤子系統, 因此到實際播出前需要 Synthesizer 幫忙處理合成. ZynAddSubFx 在這裡就當作 Synthesizer 使用.

接著作 limits.conf 設定,

sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - memlock 250000 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - nice -10 >> /etc/security/limits.conf'

把系統 reboot 後重新開啟 qjackctl, 並利用 "Start" 按鈕開啟 JACK server ( jackd ). 這時候如果遇到開啟失敗的訊息, 請利用 Messages 按鈕看錯誤訊息. 如果是 server 啟動失敗, 請把 ALSA 重新啟動試試看. ( alsa command 的位置可能根據系統有所不同 )

sudo su -c '/etc/init.d/alsa force-reload'

啟動沒問題的話, 開啟 ZynaddSubFx 以及 vmpk, 然後利用 Connect 按鈕設定上面說的, 從 vmpk 到 ZynaddSubFx 再到音效裝置的 Connections.

照 Compdigitec Labs 的文章中之示範, 音效卡代號應該會出現在 ALSA 分頁中, 但是我的沒有 ^^b, 所以先只有把 vmpk 的 Output 接到 ZynaddSubFx. 接上的方法很簡單, 用滑鼠把 vmpk Output 拉到 ZynaddSubFx 上放開即可.


而 ZynaddSubFx 到音效裝置間的連結, 則是改在 Audio 頁面中搞定. 其中 playback 1 是左聲道, playback2 是右聲道, 其他的在我系統中無作用.


這樣設定完就 OK 了~, 把視窗 Focus 移到 vmpk 上面, 對應的鍵盤按下去就可以看到琴鍵變化, 以及發出 MIDI 音效. 在 ZynaddSubFx 視窗中也會有對應的變化.


其實當焦點移到 ZynaddSubFx 上也是可以有同樣的反應. 不過如上所述 vmpk 較占優勢的理由, 本篇還是以 vmpk 作為 Front-End 為主.

5 意見:

jean zheng 提到...

Dear selain. 你的blog 是用什麼tool 來寫的呢? 只是好奇 想知道貼圖容不容易 因為我最近有找到一個 但是不適合小nb(tool bar 畫面太多) 所以想問你 說不定它像vim一樣會有windows版本

seLain 提到...
作者已經移除這則留言。
seLain 提到...

是小毛阿, 我還以為是誰 = =

我只有使用 blogger 的後台直接撰寫而已, 沒有使用額外的編輯器 (偶爾用 Kompozer 協助修正一些 HTML 編排). 事實上我試過一些支援 blogger 的編輯器, 但是都不是很順手, 加上我慣用 Linux Desktop, 只支援 Windows 的也不合用. 目前這個 blog 還只需要簡單的文字上色跟置圖, 倒也還過得去就是. 您有好的工具也請推薦一下 :)

柏瑋 提到...

請問您是如何開啟Zynth的? 我下載後解壓縮到檔案夾,裡頭只有那個dll,可以請您告訴我要用哪個程式開嗎? 我試過把副檔名改成.exe,結果執行它時,它說這不是正確的Win32應用程式......開啟Jack Connection Kit的時候也常有錯誤出現...它的錯誤訊息是06:55:55.029 Patchbay deactivated.
06:55:55.029 Statistics reset.
06:55:55.039 Startup script...
06:55:55.039 artsshell -q terminate
06:55:55.490 Startup script terminated with exit status=1.
06:55:55.490 JACK is starting...
06:55:55.490 jackd.exe -R -dalsa -dhw:0 -r48000 -p1024 -n3
06:55:55.510 JACK was started with PID=18244160.
06:55:55.560 JACK was stopped with exit status=-1.
06:55:55.560 Post-shutdown script...
06:55:55.560 killall jackd
06:55:55.560 JACK has crashed.
06:55:56.010 Post-shutdown script terminated with exit status=1.
06:55:57.743 Could not connect to JACK server as client. - Overall operation failed. - Server communication error. Please check the messages window for more info.
可以煩請您告訴敝人問題出在哪裡嗎?
VMPK倒是很容易用...... 煩請先見指教,十分感謝!

seLain 提到...

先暫回一下...因為我的使用環境不是 Windows, 沒有遇到你這問題. 手邊沒有立即有 Windows 機器可以測試, 晚點有空再幫你試試看...

Designed by Posicionamiento Web | Modified by seLain | Bloggerized by GosuBlogger | Blue Business Blogger