JACK (JACK Audio Connection Kit)是Linux作業系統下十分強大的處理聲音訊號流向的服務。透過JACK,使用者可以讓自己的Linux電腦能夠在錄音的同時監聽輸入的聲音、產生聲音訊號,並且控制聲音訊號的流向到不同的音訊處理軟體中即時處理。
使用 lowlatency 的 Linux 核心
要在Ubuntu作業系統或是其衍生的發行版中使用JACK,可以先用uname -a
或是uname -r
指令來查看自己的核心(Kernel)是否是使用lowlatency
版的。因為JACK需要作業系統進行低延遲的排程處理才能正常運作。
如果您的Linux核心並不是lowlatency
版的,可以執行以下指令來安裝lowlatency
版的核心:
使用JACK很可能會遇到硬體相容性的問題,可以參考這篇文章來更深入地了解Ubuntu的Linux核心的更新或更換方式:
安裝 JACK 和相關的控制台軟體
如果您是使用Ubuntu Studio發行版,因為已經內建了JACK,所以這個步驟可以省略。
在使用uname -a
或是uname -r
指令確認自己正在使用的是lowlatency
版的Linux核心後,就可以使用以下指令來安裝JACK:
如果是Ubuntu 20.04之前的版本,要把指令中的studio-controls
套件名稱更換成ubuntustudio-controls
。
在安裝套件的過程中,會詢問是否要讓JACK擁有實時(realtime)權限的確認畫面,選擇是
即可。
安裝好後即可開啟Studio Controls (Ubuntu Studio Controls)。
如果有出現Fix Realtime Permissions
按鈕(如上圖)就按下去,然後重新開機吧!
啟動 JACK 服務
開啟Studio Controls,按下Start or Restart JACK
按鈕等個幾秒鐘就可以啟動JACK服務。
如果JACK服務啟動成功,JACK Status
欄位會顯示Running
。
Carla
Carla可以把支援JACK的硬體、軟體給圖形化,方便控制音訊的流向。
JACK服務啟動後,開啟Carla,在Patchbay
分頁中可以看到目前系統中的JACK軟硬體裝置有哪些,以及它們的連接關係。
我們可以在Carla中任意地調整這些裝置的連接線,來控制音訊的流向。舉例來說,可以把system
的capture_1
和capture_2
分別連接到system
的playback_1
和playback_2
,如此一來這台Linux電腦便能夠實現一邊錄音一邊監聽的功能。
若要移除連線要使用滑鼠右鍵,如下圖。
如下圖,筆者把卡西歐(CASIO)電子琴的USB MIDI輸出連接到這台Linux電腦,在Carla中會立刻出現這個裝置。筆者又把卡西歐電子琴的MIDI連接到MuseScore,這樣一來筆者用卡西歐電子琴彈奏出來的音(MIDI訊號)就會經過MuseScore的處理,套用SoundFont轉成聲音訊號並播放出來,或者進行MIDI錄製。有關MuseScore的介紹可以查看這篇文章。
Carla本身也有插件功能,按下Add Plugin...
可以選擇要加入的插件。
以Audio Gain
為例。筆者想讓麥克風接收到的聲音在監聽的時候不要太大聲,所以先把system
的capture_1
和capture_2
分別連接到Audio Gain
的input_1
和input_2
,再把Audio Gain
的output_1
和output_2
分別連接到system
的playback_1
和playback_2
。
切換到Rack
分頁,可以調整插件的設定,並即時得到設定改變的結果。
如果您想保留Carla現在的設定以便下次使用,Carla也有提供儲存和讀取的功能。
開機後自動執行 JACK 服務
預設情況下,JACK在Linux開機後並不會自動執行,我們總是需要開啟Studio Controls來啟動JACK服務。如果不想這麼麻煩的話,可以在/etc/pulse/default.pa
檔案最尾端加入以下文字,讓Linux在開機後自動執行JACK服務。
load-module module-jack-sink load-module module-jack-source