PulseAudio
PulseAudio は GNOME や KDE などのデスクトップ環境で一般的に使われているサウンドサーバーです。ALSA や OSS などの既存のカーネルサウンドコンポーネントを使うサウンドアプリケーションに対して代理として動作します。ALSA が Arch Linux にデフォルトで含まれているため、基本的には ALSA に PulseAudio を含めることになります。
インストール
- 必要なパッケージ: pulseaudio
- 任意の GTK の GUI: paprefs と pavucontrol
- キーボードを使う任意のボリュームコントロール: pulseaudio-ctlAUR
- 任意のコンソール (CLI) ミキサー: ponymix と pamixer-gitAUR
- 任意のコンソール (curses) ミキサー: pulsemixer-gitAUR
- 任意のウェブボリュームコントロール: PaWebControl
- 任意のシステムトレイアイコン: pasystray-gitAUR
- 任意の KDE4 plasma アプレット: kdemultimedia-kmix と kdeplasma-applets-veromixAUR (起動時に KMix/Veromix が PulseAudio に接続されない場合
/etc/pulse/client.conf
を編集してautospawn = no
をautospawn = yes
に置き換えて下さい) - 任意の KF5 plasma アプレット: kmix
- Bluetooth ヘッドセットなどの Bluetooth のオーディオデバイスを PulseAudio で使いたい場合 Bluetooth ヘッドセットの記事を見て下さい。
PulseAudio モジュール
PulseAudio のモジュールの中にはメインのパッケージと 分割 されているものがあり、必要に応じてインストールする必要があります。
実行
バージョン 6.0 から、PulseAudio はオートスポーン/ソケットアクティベーションを利用します。ソケットアクティベーションを使うには、systemd/ユーザーインスタンスで pulseaudio.socket
を有効化してください。
もしくは、オートスポーンアクティベーションを使いたい場合は /etc/pulse/client.conf
または ~/.pulse/client.conf
で autospawn=yes
と設定してください。詳しくは PulseAudio: Running を参照。
手動で起動
X を起動した時に pulseaudio が自動で立ち上がらない場合は、次のコマンドで実行できます:
$ pulseaudio --start
次のコマンドで PulseAudio を停止できます:
$ pulseaudio --kill
イコライザー
pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。
equalizer sink と dbus-protocol モジュールをロードする
$ pactl load-module module-equalizer-sink $ pactl load-module module-dbus-protocol
GUI フロントエンドをインストールして実行する
pulseaudio-equalizer をインストールし、以下を実行します。
$ qpaeq
起動時に イコライザーと dbus モジュールをロードする
お好みのエディタで /etc/pulse/default.pa
を開き、以下の行を追記します。
### Load the integrated pulseaudio equalizer and dbus module load-module module-equalizer-sink load-module module-dbus-protocol
バックエンドの設定
ALSA
- 推奨パッケージ: pulseaudio-alsa
- 追加選択パッケージ: lib32-libpulse および lib32-alsa-plugins
PulseAudio をサポートせず ALSA をサポートするアプリケーションのためには、ALSA のための PulseAudio プラグインをインストールすることが推奨されます。このパッケージは、ALSA に PulseAudio を利用させるために必要なファイル /etc/asound.conf
も含んでいます。
アプリケーションに ALSA の OSS エミュレーションをやめさせ PulseAudio を迂回させない(そうして、他のアプリケーションの音声出力を防ぐ)ためには、起動時に snd_pcm_oss
モジュールがロードされないようにします。このモジュールが現在ロードされていたら (lsmod | grep oss
で確認可能)、以下を実行してモジュールを無効にしましょう:
# rmmod snd_pcm_oss
ALSA/dmix でハードウェアデバイスを占有しない
ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。
- pulseaudio-alsa パッケージを削除してください、ALSA アプリケーションと PulseAudio の互換レイヤーが含まれています。削除した後、ALSA アプリは Pulse につかまることなく ALSA を直接使うようになります。
/etc/pulse/default.pa
を編集してください。
- バックエンドドライバーをロードする行を探してアンコメントしてください。以下のように device パラメータを追加してください。それから autodetect モジュールをロードする行をコメントアウトしてください。
load-module module-alsa-sink device=dmix load-module module-alsa-source device=dsnoop # load-module module-udev-detect # load-module module-detect
- 任意: kdemultimedia-kmix を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合:
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh $ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
- コンピュータを再起動して、alsa と pulseaudio のアプリケーションを同時に実行して見て下さい。同時に音声を鳴らすことができるはずです。
- PulseAudio ボリュームの操作が必要なときは pavucontrol を使って下さい。
OSS
OSS にしか対応していないプログラムを PulseAudio に出力させる方法は複数存在します:
ossp
ossp パッケージをインストールして osspd.service
を起動してください。
padsp ラッパー
OSS を使うプログラムは (PulseAudio に含まれている) padsp を使って起動することで PulseAudio で動作するようにできます:
$ padsp OSSprogram
例:
$ padsp aumix $ padsp sox foo.wav -t ossdsp /dev/dsp
以下のようなカスタムラッパースクリプトも使えます:
/usr/local/bin/OSSProgram
#!/bin/sh exec padsp /usr/bin/OSSprogram "$@"
PATH で /usr/bin
よりも先に /usr/local/bin
が来るようにしてください。
GStreamer
GStreamer で PulseAudio を使うには、gst-plugins-good か gstreamer0.10-good-plugins をインストールする必要があります。
OpenAL
OpenAL Soft はデフォルトで PulseAudio を使いますが、明示的に設定することもできます:
/etc/openal/alsoft.conf
drivers=pulse,alsa
libao
libao の設定ファイルを編集してください:
# /etc/libao.conf
default_driver=pulse
alsa ドライバーの dev=default
オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。
ESD
PulseAudio は enlightened sound daemon (ESD) を完全に置き換えます。PulseAudio が動作している時、ESD クライアントは PulseAudio に何もしなくても出力できるはずです。
デスクトップ環境
X11
PulseAudio が動作しているかどうか確認してください:
$ ps aux | grep pulse
facade 1794 0.0 0.0 360464 6532 ? S<l 15:33 0:00 /usr/bin/pulseaudio --start facade 1827 0.0 0.0 68888 2608 ? S 15:33 0:00 /usr/lib/pulse/gconf-helper
PulseAudio が動いておらず X を使っている場合は、以下で PulseAudio と必要な X11 のプラグインを手動で起動できます:
$ start-pulseaudio-x11
Gnome, KDE, Xfce を使ってないために ~/.xinitrc
が /etc/X11/xinit/xinitrc.d
のスクリプトを (サンプルファイル /etc/skel/.xinitrc
のように) 読み込まないときは、次のコマンドでブート時に PulseAudio を起動できます:
~/.xinitrc
/usr/bin/start-pulseaudio-x11
GNOME
GNOME 3 から、GNOME は PulseAudio と完全に統合したため特に設定は必要ありません。
KDE 3
PulseAudio は aRts との完全な互換性はありません。KDE 3 のユーザーは PulseAudio を使えません。ただし最近のバージョンの PulseAudio では障害が取り除けるかもしれません:
参照: http://www.pulseaudio.org/wiki/PerfectSetup KDE 3 はデフォルトで artsd サウンドサーバを使っています。しかしながら、artsd は Esound バックエンドを使うように設定することが可能です。kcmartsrc
(グローバルな設定は /etc/kde
または /usr/share/config
、ユーザー別の設定は .kde/share/config
にあります) を以下のように編集してください:
[Arts] Arguments=\s-F 10 -S 4096 -a esd -n -s 1 -m artsmessage -c drkonqi -l 3 -f NetworkTransparent=true SuspendTime=1
KDE Plasma ワークスペースと Qt4
PulseAudio は KDE/Qt4 アプリケーションによって使われます。詳しくは PulseAudio wiki の KDE のページ を見て下さい。
PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。
phonon-gstreamer バックエンドを Phonon に使っている場合、gstreamer0.10-good-plugins をインストールして GStreamer も PulseAudio を使うように設定してください。
load-module module-device-manager
を /etc/pulse/default.pa
に追加するのが有用です。
さらに、KMix や pavucontrol の KDE 代替として AUR から kdeplasma-applets-veromixAUR が利用できます。
Xfce
Xfce で動いているアプリケーションは PulseAudio を使うことができます。PulseAudio の設定を管理するには pavucontrol を使います。
アプリケーション
Audacious
Audacious は PulseAudio にもとから対応しています。利用するためには、Audacious で 設定→オーディオ→出力プラグイン で「PulseAudio 出力」に設定しましょう。
Java/OpenJDK 6
Pulseaudio と Java のサウンドに書かれているように padsp を使って java のラッパーを作成してください。
Music Player Daemon (MPD)
PulseAudio を使うように MPD を 設定 してください。Music Player Daemon/Tips and tricks#PulseAudio を参照。
MPlayer
MPlayer はネイティブで PulseAudio 出力をサポートしており "-ao pulse
" オプションを使います。PulseAudio への出力をデフォルトに設定することも可能で、ユーザー別の設定には ~/.mplayer/config
で、システム全体では /etc/mplayer/mplayer.conf
で設定します:
/etc/mplayer/mplayer.conf
ao=pulse
Skype (x86_64)
lib32-libpulse をインストールしてください。そうしないと通話をしようとした時に次のエラーが発生します: "Problem with Audio Playback"。
guvcview
PulseAudio で guvcview を使用するとウェブカメラからの入力で音声入力が中止され音声が記録されないことがあります。次を実行して確認できます:
$ pactl list sources
音声ソースが "suspended" になっている場合 /etc/pulse/default.pa
の以下の行を:
load-module module-suspend-on-idle
次のように修正してください:
#load-module module-suspend-on-idle
PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。
Tips and tricks
キーボードのボリュームコントロール
以下のコマンドをボリュームキーにマッピングしてください: XF86AudioRaiseVolume
, XF86AudioLowerVolume
, XF86AudioMute
ボリュームを上げるには:
sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"
ボリュームを下げるには:
sh -c "pactl set-sink-mute 0 false ; pactl -- set-sink-volume 0 -5%"
ボリュームをミュート(解除)するには:
pactl set-sink-mute 0 toggle
トラブルシューティング
PulseAudio/トラブルシューティングを見て下さい。
参照
- http://www.alsa-project.org/main/index.php/Asoundrc - Alsa wiki on .asoundrc
- http://www.pulseaudio.org/ - PulseAudio 公式サイト
- http://www.pulseaudio.org/wiki/FAQ - PulseAudio FAQ