Manjaro Linuxでオーディオ制作環境を構築する
Arch Linuxのディストリビューション・Manjaro Linuxでオーディオ制作環境を構築する。プロオーディオ環境構築手順はArch Linuxの公式wikiに出ているので、そのとおりにすればよい。
https://wiki.archlinux.org/index.php/Professional_audio
とりあえず動くようにする
DAWのインストール
まずDAWなら何でも良いが、ここではArdourをインストールする。
$ sudo pacman -S ardour
ユーザをrealtimeグループへ追加
JACKは最初からインストールされているのだが、 ユーザをrealtimeグループに追加しないと実行できない。
$ sudo pacman -S realtime-privileges
$ sudo gpasswd -a USERNAME realtime
これだけやればとりあえずArdourは動く。
GUIベースのJACKの設定
最小構成
https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit#A_GUI-based_example_setup
$ sudo pacman -S jack2 python-dbus qjackctl
wikiの通りにjackをjack2に入れ替えておく。
jackに比べて、GUIのJACK制御ツールであるqjackctlの連携が多少しやすい。
qjackctlを開いて設定 > その他
のJACK D-busインターフェイスの有効化
をチェックする。
PulseAudioと統合する場合
JACKの起動中は通常、PulseAudioからの音が鳴らなくなる。つまりJACK非対応のアプリケーションから音が鳴らなくなるため結構不便。下記wikiの通り、PulseAudioがJACKを通じて鳴るようにすることもできる。
https://wiki.archlinux.org/index.php/PulseAudio/Examples#PulseAudio_through_JACK
$ sudo pacman -S jack2 cadence pulseaudio-jack
下記のとおり、ALSA Audioの部分をALSA -> PulseAudio -> JACK (Plugin)
に設定しておく。
システムの最適化
上記でJACKとDAWが動くようになっているが、レイテンシ最小化のためのシステムの設定をする。
realtimeカーネルの導入
Manjaro Linuxでは、設定 > Manjaro Settings Manager
からカーネルのダウンロードができる。
rtがついているカーネルをインストールする。
カーネルの適用は、PCの起動時にShiftキーを連打してカーネル選択メニューに入る。
ガバナーの設定
カーネルのGovernerをperformanceに設定する。
https://wiki.archlinux.org/index.php/CPU_frequency_scaling#Scaling_governors
$ sudo cpupower frequency-set -g performance
ガバナー設定の永続化
ガバナーの設定を起動時に反映させるためには以下のようにする。
https://wiki.archlinux.org/index.php/CPU_frequency_scaling#cpupower
https://wiki.archlinux.org/index.php/Systemd#Enabling
$ sudo vim /etc/default/cpupower
# Define CPUs governor
# valid governors: ondemand, performance, powersave, conservative, userspace.
governor='performance'
有効化(起動時に自動で実行するよう設定)されているかどうか表示:
$ systemctl is-enabled cpupower
disabledになっている場合は有効化する:
$ sudo systemctl enable cpupower
割り込み頻度の設定
割り込みできるプロセス数を増やすことでさらなる低レイテンシ化を実現。
$ sudo vi /etc/systemd/system/RTC_interrupt_frequency.service
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
swap頻度の変更
swap頻度を60から10に減らすことで、swapが起きるまでの待機時間を長くする。
$ sudo vi /etc/sysctl.d/90-swappiness.conf
vm.swappiness = 10
ファイルの最大watch数を変更
DAWでは多くのファイルをハンドルする必要があり、最大watch数を増やすと良いらしい。
$ sudo vi /etc/sysctl.d/90-max_user_watches.conf
fs.inotify.max_user_watches = 600000