Pulseaudio on OpenAL
国内における OpenAL の情報は少ないので、メモしておこう。
下記 URL の openAl-soft pulesaudio backend download 項目にある手順を実行する。
http://www.lastlog.de/wiki/index.php/Pulseaudio
具体的な手順は以下のとおり。
git clone http://lastlog.de/git/openal-soft-pulseaudio
cd openal-soft-pulseaudio
cmake ./
make
make install
設定ファイルは .openalrc から .alsoftrc に変更になったようだ。
従来の設定ファイルのまま、新しく作ったライブラリをリンクしてアプリを実行すると、コンソールに以下のメッセージが表示される。
AL lib: alcConfig.c:228: Reading ~/.openalrc; this file is deprecated
Please rename it to ~/.alsoftrc
AL lib: alcConfig.c:141: config parse error: option without a value: "(define"
AL lib: alcConfig.c:141: config parse error: option without a value: "(define"
AL lib: pulseaudio.c:593: alcPulseAudioInit
設定ファイルのリネームと共に書式を以下のように変更した。
・変更前
(define devices '(alsa))
(define alsa-device "pulse")
・変更後
[general]
drivers = alsa
[alsa]
device = pulse
この後、Pulseaudio を再起動してアプリを実行したら、音質が格段に向上した。
本当は遅延が解消されることも期待していたのだが、しばらく動かしてるとCPU使用率とコンテキストスイッチの回数(15000〜30000回)と音が酷いことになるようだ。
【追記】
Compiz-Funsion のパフォーマンス悪化していたのが直った。
xorg.conf やら nVidia Display Setting を弄ったりしたのだが、具体的にどこが原因だったのか不明なまま直ってしまった。
とりあえず、以下のように修正したので張り付けておく。
Section "Device" Identifier "Videocard0" Driver "nvidia" Option "AddARGBGLXVisuals" "True" BusID "PCI:01:00:0" EndSection Section "Device" Identifier "Videocard1" Driver "nvidia" Option "AddARGBGLXVisuals" "True" BusID "PCI:04:00:0" EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 Option "AddARGBGLXVisuals" "True" Option "SLI" "AFR" SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection