Linuxオーディオ環境「JACKサウンドサーバ」の導入

(2019.11.13執筆)


LinuxのDTM(音楽制作)環境を整えるのに、欠かせないのがJACKサウンドサーバーの導入。
WindowsでいうASIOドライバー、MacでいうCoreAudioのような役割。

qjackctl

参考 ⇒ JACKサウンドサーバについて


要約すると、Linux標準のサウンドシステムでは一つのアプリからしか音を鳴らせない。 しかし、JACKのパッケージを導入することで複数アプリの音源をmixした状態でスピーカーに出力できるようになる。JACKサウンドサーバーで、パソコンがマルチオーディオに対応するということですね。
加えて低レイテンシになる(音声の入力遅延が少なくなる)というメリットもある。なるほど。

JACKの導入には2つの方法があります。

方法その1「UbuntuStudio-audio」のパッケージから導入

UbuntuStudioはマルチメディアに特化したLinuxOSで、Linux mintと同じUbuntu系統をベースにしたディストリビューションです。Linux mintからでも、追加でUbuntuStudioのパッケージを導入することで、同様に音響設備に特化した環境を構築することができマス(' '*)。これにはJACKオーディオサーバーも同梱されます。

シンプルな設定で誰にでもおすすめ。こちらの記事を参考にしました。

参考 ⇒ Linux Mint MateでPCオーディオ(1):ハイレゾ音源を鑑賞できるようにする


ソフトウェアマネージャーから「ubuntustudio」で検索して、導入するパッケージを探しましょう。

ubuntustudioパッケージ

おおよそ「ubuntustudio-audio」と「ubuntustudio-controls」の二つでOKなようです。

パッケージをインストールする途中、同梱されてる"Jackd2"の導入で「リアルタイム実行優先度の設定を有効にしますか?」と聞かれます。どっちでもいいので、インストールを続行します。

Ubuntu Studio Controlsの起動

ubuntustudio-controls

インストールが終わったら、ミントメニューから「Ubuntu Studio Controls」を検索で起動し、自分のユーザー名を「Audio Group」に加えるにチェックを入れて「OK」を押します。

リアルタイム実行優先度について

これ、私は基本OFFにするかな。たぶん切っておいたほうがパソコンの負担が少ないので。打ち込みだけだったら問題ない。 えっとMIDIキーボードなどで音声を入力する人は、ONが望ましいです!

CPUパフォーマンスモードについて

これにチェックを入れると、CPUの性能がフルスロットル全開になるようです。音声パフォーマンス良くなりますが、消費電力も増。 私は、基本外すかな。


以上を確認して再起動後、Jackサウンドサーバーが適応された状態でサウンド環境が最適化されてるでしょう。

おつかれさまでした!(' '*)

方法その2「qjackctl」パッケージを導入する

こちらは、より詳細な設定をしたい方向け。「qjackctl」はJACKのパフォーマンスを細かく設定するためのアプリです。 上の方法に追加で導入することをおすすめします。

参考 ⇒ JACKサウンドサーバGUI(qjackctl)について

ページの下部に「qjackctl」を介してJACKオーディオサーバーを設定する方法が載ってます。

qjackctlをインストール ⇒ 起動

ともあれ「qjackctl」パッケージをインストールしてみます。ソフトウェア管理からもいけるけど

qjackctlインストール


今回はターミナルから。。
sudo apt install qjackctl pulseaudio-module-jack


その後、ミントメニューから「qjackctl」と入れて起動します。
qjackctl

qjackctlから設定を確認

ふむふむ。ここから設定画面。

qjackctl設定

ここで音声出力のサンプルレートやバッファサイズを変更することができる。
レイテンシーの時間も確認することができる。

  • サンプルレート....一般的なCDの音質44.1kHz。ハイレゾ音源は96kHz以降の設定。大きいほどCPU負担増
  • フレーム/ピリオド....数が小さいほどレイテンシー軽減、CPU負荷大。数が多いほどCPU負荷が減り、ノイズも改善。
  • ピリオド/バッファ....同上
  • レイテンシーの計算式...「フレーム/ピリオド」値 × 「ピリオド/バッファ」値 ÷ 「サンプルレート」値 × 1000 (ミリ秒)



サンプルレートは使用する音源に合わせて固定なので、残りのフレーム/ピリオド/バッファの調製例をば

リアルタイム収録を優先するときはバッファサイズを小さく

リアルタイムの収録再生、低レイテンシーを求めるのであれば、音飛びのないギリギリまでフレーム/ピリオドの値を少なくしてから収録に臨みます。(10msくらいが理想値らしい)
収録時は2mix(ボーカルとそれ以外)でトラック数を最小にして。低レイテンシーでも問題なく再生できるように。

音質やCPUコストを優先するときはバッファサイズを大きめに

逆に高音質音源やプラグインを多く使うことでCPU負荷が増え、音声にノイズや音割れが発生するときは、フレーム/ピリオドの値を大きめにとることで改善されます。(DAW上で完結してれば、多少の遅れは問題ない)


JACKの導入によりオーディオ周りの調整が円滑になり、DAWの音質を最大限に活かせるようになりました。

追記:lowlatencyカーネルの導入

此処からよりリアルタイム入力を優先する人向けの記事。CPUの負担や内部の温度上昇、消費電力増...という部分を認識しつつも、リアルタイム音声の入出力を優先する人に、ぜひぜひ。

参考 ⇒ How to install linux-lowlatency on ubuntu


私自身はここをパスで。


参考リンク

Linuxのサウンドシステムがどのようになっているのか
Ubuntu Weekly Recipe 第177回 サウンドシステムの使いこなし
第582回「UbuntuでDTM」の人気再び? USBオーディオやDAWソフトとの連携を試す