February 1, 2020

1113 letters 3 mins read

Manjaro Linuxでオーディオ制作環境を構築する

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インターフェイスの有効化をチェックする。

qjackctl-setting-etc

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)に設定しておく。

manjaro-kernel-install

システムの最適化

上記でJACKとDAWが動くようになっているが、レイテンシ最小化のためのシステムの設定をする。

realtimeカーネルの導入

Manjaro Linuxでは、設定 > Manjaro Settings Managerからカーネルのダウンロードができる。 rtがついているカーネルをインストールする。

manjaro-kernel-install

カーネルの適用は、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