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