「PulseAudio」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
(関連項目へPipeWireの追加)
 
(5人の利用者による、間の22版が非表示)
1行目: 1行目:
[[Category:音声/動画]]
+
[[Category:マルチメディア]]
 
[[Category:サウンド]]
 
[[Category:サウンド]]
 
[[cs:PulseAudio]]
 
[[cs:PulseAudio]]
9行目: 9行目:
 
[[ru:PulseAudio]]
 
[[ru:PulseAudio]]
 
[[tr:PulseAudio]]
 
[[tr:PulseAudio]]
  +
[[zh-hans:PulseAudio]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|PulseAudio/Examples}}
+
{{Related|PulseAudio/サンプル}}
  +
{{Related|PulseAudio/トラブルシューティング}}
  +
{{Related|PipeWire}}
 
{{Related articles end}}
 
{{Related articles end}}
[[Wikipedia:ja:PulseAudio|PulseAudio]] は [[GNOME|GNOME]] や [[KDE|KDE]] などのデスクトップ環境一般的に使われるサウンドサーバーです。[[Advanced Linux Sound Architecture|ALSA]] や [[OSS|OSS]] などの既存のカサウンドコンポーを使うサウンドアプショに対して代理して動作します。[[Advanced Linux Sound Architecture|ALSA]] が Arch Linux にフォルトで含まれていため基本的は [[Advanced Linux Sound Architecture|ALSA]] PulseAudio 含めることになります。
+
[[Wikipedia:ja:PulseAudio|PulseAudio]] は[[ALSA]] や [[OSS]] を用いてアプリケーションとハードウェアバイの間ミドルウェアとし動作すことを目的とした汎用サウンドサーバーです。また、[[Avahi]] を有効にするとことで、ロデバイス間で簡単にットワークストリーグを行うこができます。主な目的はオーィオの設定を簡単にすことですがそのモジュール設計より、より高度なユーザが自分のニーズ合わせてデーモン設定することができます。
  +
  +
{{Note|[[ALSA]]と PulseAudio の間に若干の混乱が生じるかもしれません。ALSA には、サウンドカードドライバを含む Linux カーネルコンポーネントと、ユーザ空間コンポーネントの {{ic|libasound}} があります。[https://www.alsa-project.org/main/index.php/Download] PulseAudio はカーネルコンポーネントのみをベースにしていますが、{{pkg|pulseaudio-alsa}} によって {{ic|libasound}} との互換性を提供しています。[https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index14h3]}}
   
 
== インストール ==
 
== インストール ==
   
  +
{{Pkg|pulseaudio}} パッケージをインストールしてください。
* 必要なパッケージ: {{Pkg|pulseaudio}}
 
  +
* 任意の GTK の GUI: {{Pkg|paprefs}} と {{Pkg|pavucontrol}}
 
  +
PulseAudio のモジュールの中にはメインのパッケージと [https://www.archlinux.jp/news/pulseaudio-split/ 分割] されているものがあり、必要に応じてインストールする必要があります:
* キーボードを使う任意のボリュームコントロール: {{AUR|pulseaudio-ctl}}
 
  +
* {{Pkg|pulseaudio-alsa}} PulseAudio で [[ALSA]] を管理、こちらも参照 [[#ALSA]]
* 任意のコンソール (CLI) ミキサー: {{Pkg|ponymix}} と {{AUR|pamixer-git}}
 
  +
* {{Pkg|pulseaudio-bluetooth}}: Bluetooth (Bluez) のサポート
* 任意のウェブボリュームコントロール: [https://github.com/Siot/PaWebControl PaWebControl]
 
  +
* {{Pkg|pulseaudio-equalizer}}: イコライザー sink (qpaeq)
* 任意のシステムトレイアイコン: {{AUR|pasystray-git}}
 
  +
* {{Pkg|pulseaudio-jack}}: JACK sink, source, jackdbus 検知
* 任意の KDE plasma アプレット: {{Pkg|kdemultimedia-kmix}} と {{AUR|kdeplasma-applets-veromix}}
 
  +
* {{Pkg|pulseaudio-lirc}}: 赤外線 (LIRC) ボリュームコントロール
  +
* {{Pkg|pulseaudio-zeroconf}}: Zeroconf (Avahi/DNS-SD) のサポート
  +
  +
{{Note|[[ALSA]] と PulseAudio についてはややこしい部分があります。ALSA にはサウンドカードドライバーの Linux カーネルコンポーネントと、ユーザー空間のコンポーネントである {{ic|libalsa}} の両方が含まれています [http://www.alsa-project.org/main/index.php/Download]。PulseAudio はカーネルコンポーネントのみで作られますが、{{Pkg|pulseaudio-alsa}} によって {{ic|libalsa}} との互換性も取られています [https://www.freedesktop.org/wiki/Software/PulseAudio/FAQ/#index14h3]。}}
  +
  +
=== フロントエンド ===
  +
  +
PulseAudio デーモンを制御するための様々なフロントエンドが存在します:
  +
  +
* GTK の GUI: {{Pkg|paprefs}} と {{Pkg|pavucontrol}}
  +
* キーボードキーによるボリュームコントロール: {{AUR|pulseaudio-ctl}}
  +
* コンソール (CLI) ミキサー: {{Pkg|ponymix}} と {{Pkg|pamixer}}
  +
* コンソール (curses) ミキサー: {{AUR|pulsemixer-git}}
  +
* ウェブボリュームコントロール: [https://github.com/Siot/PaWebControl PaWebControl]
  +
* システムトレイアイコン: {{AUR|pasystray-git}}
  +
* KF5 plasma アプレット: {{Pkg|kmix}} and {{Pkg|plasma-pa}}
  +
* Bluetooth ヘッドセットや他の Bluetooth 音声デバイスを PulseAudio で使いたい場合は [[Bluetooth ヘッドセット]]の記事を読んでください。
  +
  +
== 設定 ==
  +
  +
=== 設定ファイル ===
  +
  +
デフォルトでは、PulseAudio は全てのサウンドカードを自動的に検出して管理するように設定されています。検出された ALSA デバイスを全て制御して音声ストリームを結集させることで、PulseAudio デーモンが設定の中心点になります。デーモンは基本的に特に設定をしなくても動作するので、必要な設定はほとんどありません。
  +
  +
PulseAudio はまずホームディレクトリの設定ファイル {{ic|~/.config/pulse}} を確認して、次にシステム全体の設定ファイル {{ic|/etc/pulse}} を確認します。
  +
  +
PulseAudio はサーバーデーモンとして動作するので、クライアント・サーバーアーキテクチャを使ってシステム全体あるいはユーザー個別に起動することができます。デーモン自体はモジュールがないと何もしません。API を提供して動的にロードされたモジュールをホストするだけです。音声のルーティングなどの処理は全て様々なモジュールが担当します。利用可能なモジュールのリストは [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/ Pulseaudio Loadable Modules] で確認できます。モジュールを有効化するには {{ic|load-module <module-name-from-list>}} という行を {{ic|~/.config/pulse/default.pa}} に追加します。
  +
  +
{{Tip|
  +
* システム全体の設定ファイルは編集しないことを推奨します。ユーザー個別の設定ファイルを使ってください。{{ic|~/.config/pulse}} ディレクトリを作成して、システムの設定ファイルをコピーすることでユーザー個別の設定をすることができます。
  +
* パッケージに含まれている {{ic|/etc/pulse/}} のファイルに変更があったときはユーザーの設定もあわせるようにしてください。そうしないと、設定エラーで PulseAudio が起動しなくなる可能性があります。
  +
* ユーザーを audio グループに追加する必要はありません。[[udev]] と ''logind'' を使用して動的にユーザーに権限が与えられます。}}
  +
  +
==== daemon.conf ====
  +
  +
モジュールが使用するデフォルトのサンプルレート、リサンプリング方式、リアルタイムスケジューリング、サーバープロセスに関する設定など、基本的な設定を定義します。実行している間は変更できません。PulseAudio デーモンの再起動が必要です。ほとんどの場合、デフォルト設定で問題ありません。
  +
  +
{{Note|PulseAudio は {{ic|daemon.conf}} ファイルに記述されたパスのチルダを展開しません。ファイルを指定するときは絶対パスを使ってください。}}
  +
  +
{| class="wikitable"
  +
|+ 重要な設定オプション
  +
! オプション || 説明
  +
|+
  +
| system-instance || system-wide インスタンスとしてデーモンを実行。セキュリティの問題が生まれるため非推奨です。ローカルユーザーが存在しない (ヘッドレス) システムで有用です。デフォルトは {{ic|no}}。
  +
|+
  +
| resample-method || モジュール間で音声のサンプルレートが一致しない場合に使用するリサンプラー (例: 48kHz しか対応していないハードウェアで 96kHz の音声を再生する場合など)。利用可能なリサンプラーは {{ic|$ pulseaudio --dump-resample-methods}} で確認できます。CPU の使用量と音質のトレードオフを考えて最適なものを選択してください。{{Tip|場合によっては PulseAudio によって CPU の負担が跳ね上がることがあります。例えば複数のストリームを (個別に) リサンプルする場合などに起こりえます。そのようなことが頻繁に起こる場合、サンプルレートに対応する sink を新しく作成してメインの sink に送ることで、リサンプリングを一度で済ませることができます。}}
  +
|+
  +
| flat-volumes ||{{ic|flat-volumes}} は一番音が大きいアプリケーションのボリュームにあわせてデバイスのボリュームを調整します。例えば、VoIP の呼び出し音声を上げるとハードウェアのボリュームが上がりますが、音声プレイヤーのボリュームは元のままになるように調整され、手動で音声プレイヤーのボリュームを下げなくてもいいようにします。開発元ではデフォルトで {{ic|yes}} になっていますが、Arch においては {{ic|no}} がデフォルトです。{{Note|開発元のデフォルト設定は時として混乱を生み、アプリケーションによってはフラットボリューム機能に対応していないために、アプリケーションの起動時にボリュームが 100% に設定されることがあります。スピーカーや耳が破壊される恐れがあり大変危険です。そのため、Arch では {{ic|flat-volumes}} を {{ic|no}} に設定することで古典的な (ALSA と同じ) 設定をデフォルトとしています。}}
  +
|+
  +
| default-fragments || 音声サンプルは {{ic|default-fragment-size-msec}} によって複数の断片に分割されます。バッファを大きくすればするほど、システムが過負担のときに音声がスキップされる可能性が減ります。ただし、副作用として全体的な遅延は大きくなります。問題が発生する場合はこの値を大きくしてみてください。
  +
|}
  +
  +
==== default.pa ====
  +
  +
このファイルはスタートアップスクリプトであり、モジュールを設定するのに使われています。デーモンが初期化を完了した後に読み込まれて解析されます。{{ic|$ pactl}} や {{ic|$ pacmd}} を使うことでコマンドは追加で送信できます。また、{{ic|$ pulseaudio -nC}} を使ってターミナルで PulseAudio を起動することで使用するスタートアップファイルを指定することもできます。その場合、デーモンは CLI モジュールをロードしてコマンドラインから直接設定を受け取って、同じターミナルに情報やエラーメッセージを出力します。デーモンをデバッグするときや、ディスクで永続的に設定する前にモジュールをテストしたい場合などに有用です。マニュアルページに詳しい説明が載っています。構文については {{ic|man pulse-cli-syntax}} を読んでください。
  +
  +
{{tip|
  +
* 完全なコピーを記述するかわりに、{{ic|~/.config/pulse/default.pa}} の最初の行を {{ic|.include /etc/pulse/default.pa}} とすればデフォルト設定を上書きできます。
  +
* 利用可能な sink を確認するには {{ic|<nowiki>$ pacmd list-sinks|egrep -i 'index:|name:'</nowiki>}} を実行してください。デフォルトの sink はアスタリスクの印が付きます。
  +
* {{ic|~/.config/pulse/default.pa}} を編集して set-default-sink コマンドを挿入・変更するときは sink の名前を使ってください。番号ではその順番で実行される保証がありません。
  +
}}
  +
  +
==== {{ic|client.conf}} ====
  +
全ての PulseAudio クライアントアプリケーションが読み込む設定ファイルです。個別のクライアントについて実行時のオプションを設定したいときに使います。デフォルトの sink や source を静的に設定できるだけでなく、サーバーが動作していないときに自動的に起動するクライアントを許可 (あるいは不許可) できます。
  +
  +
=== 設定コマンド ===
  +
  +
実行している間にサーバーを設定するメインコマンドは {{ic|$ pacmd}} です。オプションのリストを表示するには {{ic|$ pacmd --help}} を実行してください。{{ic|$ pacmd}} とだけ実行することでシェルインタラクティブモードに入ることができ {{ic|Ctrl+d}} で終了します。変更した設定はすべて即座に適用されます。
  +
  +
新しい設定をテストして満足したら、{{ic|default.pa}} を編集することで変更を永続化できます。基本的な設定は [[PulseAudio/サンプル]] を見てください。
  +
  +
{{Tip|{{ic|default.pa}} ファイルの {{ic|load-module module-default-device-restore}} という行は変えないでください。デフォルトの状態でサーバーを再起動して、間違った設定を退けます。}}
  +
  +
選択されたハードウェアの "Profile" にあわせて PulseAudio で利用・選択することができる "source" (プロセス, キャプチャデバイス) と "sink" (サウンドカード, サーバー, 他のプロセス) を理解するのが重要です。"Profile" は {{ic|aplay -L}} コマンドで確認できる ALSA の "pcm" であり、{{ic|pacmd list-cards}} コマンドでもっと具体的に確認できます。"index:" 行や "profiles:" から始まるリスト、出力の "active profile: <...>" という行などです。
  +
  +
"active profile" は {{ic|pacmd set-card-profile INDEX PROFILE}} コマンドで設定できます。INDEX と PROFILE の間にカンマは必要ありません。INDEX は {{ic|pacmd list-cards}} コマンドで表示される "index:" 行の番号に、PROFILE の名前は "profile:" の下の行の最初から、コロンと空白までの文字列に置き換えてください。例: {{ic|pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo}}。
  +
  +
{{ic|pavucontrol}} などのグラフィカルツールを使えばもっと簡単に "Profile" を選択できます ("Configuration" タブ)。KDE システム設定なら "Multimedia/Audio and Video Settings" の "Audio Hardware Setup" タブから設定できます。({{ic|aplay -l}} や {{ic|pacmd list-cards}} コマンドで確認できるデバイスと同じ) 音声の "Card" には、それぞれ "Profile" が選択されます。"Profile" を選択したら、{{ic|pacmd list-sources}} と {{ic|pacmd list-sinks}} コマンドで利用可能な "source" と "sink" が確認できます。利用可能な source と sink の "index" はカードのプロファイルが変更されるたびに変わるので注意してください。
  +
  +
アプリケーションによっては選択した "Profile" が問題になることがあります。特に Adobe Flash プレイヤーの {{ic|/usr/lib/mozilla/plugins/libflashplayer.so}} と {{ic|/usr/lib/PepperFlash/libpepflashplayer.so}} はそうです。しばしば、Flash プレイヤーは Stereo プロファイルのどちらか片方を選択しないと機能せず、音声がない動画が再生されたり、あるいはクラッシュしたりします。あるプロファイルで駄目なら、別のプロファイルを選択してみてください。
  +
  +
もちろん、PulseAudio でサラウンド音声を設定する場合、適切な Surround プロファイルを選択する必要があります。
   
 
== 実行 ==
 
== 実行 ==
  +
[https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/7.0/ バージョン 7.0] から、Arch においては PulseAudio はソケットアクティベーションを使います。[https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/pulseaudio&id=419bd740dc8 デフォルト] では、[[systemd/ユーザー]]インスタンスで {{ic|pulseaudio.socket}} が有効になります。
{{Warning|もし、ユーザーごとに設定ファイル (例えば {{ic|client.conf}} や {{ic|daemon.conf}} や {{ic|default.pa}}のような)を {{ic|~/.config/pulse/}} または {{ic|~/.pulse/}} にコピーしたのならば、パッケージで提供される {{ic|/etc/pulse/}} 内のファイルの変更にも追随するようにしてください。そうしなければ、PulseAudio は設定エラーで起動しなくなるかもしれません。}}
 
   
 
{{Note|
 
{{Note|
  +
* {{ic|pulseaudio.socket}} を無効にするときは、{{ic|$XDG_CONFIG_HOME/systemd/user/}} が存在することを確認して {{ic|systemctl --user mask pulseaudio.socket}} を実行してください。
* PulseAudio の動作には [[D-Bus|D-Bus]] が必要です。
 
  +
* ほとんどの[[デスクトップ環境]]では {{ic|/etc/xdg/autostart/}} ディレクトリにある[[デスクトップエントリ#自動起動|デスクトップファイル]]によってプログラムを自動で起動します。デスクトップ環境を使っている場合、ソケットアクティベーションとは無関係に PulseAudio は自動で起動します。
* およその X11 環境では、X11 セッションの起動時に pulseaudio が自動的に起動されます。
 
 
}}
 
}}
  +
  +
詳しくは [https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/ PulseAudio: Running] を参照してください。
  +
  +
=== 手動で起動 ===
   
 
X を起動した時に pulseaudio が自動で立ち上がらない場合は、次のコマンドで実行できます:
 
X を起動した時に pulseaudio が自動で立ち上がらない場合は、次のコマンドで実行できます:
36行目: 127行目:
   
 
次のコマンドで PulseAudio を停止できます:
 
次のコマンドで PulseAudio を停止できます:
$ pulseaudio -k
+
$ pulseaudio --kill
   
 
== イコライザー ==
 
== イコライザー ==
   
 
pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。
 
pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。
  +
  +
{{Pkg|pulseaudio-equalizer}} をインストールしてください。
   
 
=== equalizer sink と dbus-protocol モジュールをロードする ===
 
=== equalizer sink と dbus-protocol モジュールをロードする ===
47行目: 140行目:
 
$ pactl load-module module-dbus-protocol
 
$ pactl load-module module-dbus-protocol
   
=== GUI フロントエンドをインストールして実行する ===
+
=== GUI フロントエンド ===
   
  +
次を実行:
{{Pkg|python-pyqt4}} をインストールし、以下を実行します。
 
   
 
$ qpaeq
 
$ qpaeq
   
{{Note|もし qpaeq が動作しなければ、 {{pkg|pavucontrol}} をインストールして、メディアプレイヤーの動作中に "ALSA Playback on" を "FFT based equalizer on ..."へ変更するとよいでしょう。}}
+
{{Note|もし qpaeq が動作しなければ、 {{pkg|pavucontrol}} をインストールして、メディアプレイヤーの動作中に "ALSA Playback on" を "FFT based equalizer on ..." へ変更するとよいでしょう。}}
   
 
=== 起動時に イコライザーと dbus モジュールをロードする ===
 
=== 起動時に イコライザーと dbus モジュールをロードする ===
79行目: 172行目:
 
=== ALSA/dmix でハードウェアデバイスを占有しない ===
 
=== ALSA/dmix でハードウェアデバイスを占有しない ===
   
  +
{{Note|この項では、通常は'''推奨されない'''代替構成について説明します。}}
{{Note|This section describes alternative configuration, which is generally '''not''' recommended.}}
 
   
 
ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。
 
ALSA を直接アプリケーションで使って他のアプリケーションも使えるようにしたいと思っているならば、同時に PulseAudio も必要になります。以下の手順で PulseAudio が ALSA のハードウェアデバイスの代わりに dmix を使うようにできます。
92行目: 185行目:
 
# load-module module-detect
 
# load-module module-detect
   
* ''任意:'' {{Pkg|kdemultimedia-kmix}} を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合:
+
* ''任意:'' {{Pkg|kdemultimedia-kmix}}{{Broken package link|パッケージが存在しません}} を使っていてPulseAudio ボリュームのかわりに ALSA ボリュームを操作したい場合:
 
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh
 
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh
 
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
 
$ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
105行目: 198行目:
 
==== ossp ====
 
==== ossp ====
   
{{Pkg|ossp}} パッケージをインストールして '''osspd''' サービスを起動してください。
+
{{Pkg|ossp}} パッケージをインストールして {{ic|osspd.service}} を起動してください。
   
==== padsp ラッパー (PulseAudio の一部) ====
+
==== padsp ラッパー ====
   
OSS を使うプログラムは padsp を使って起動することで PulseAudio で動作するようにできます:
+
OSS を使うプログラムは (PulseAudio に含まれている) padsp を使って起動することで PulseAudio で動作するようにできます:
   
 
$ padsp OSSprogram
 
$ padsp OSSprogram
125行目: 218行目:
 
=== GStreamer ===
 
=== GStreamer ===
   
[[GStreamer]] で PulseAudio を使うには、{{Pkg|gst-plugins-good}} か {{Pkg|gstreamer0.10-good-plugins}} をインストールする必要があります。
+
[[GStreamer]] で PulseAudio を使うには、{{Pkg|gst-plugins-good}} か {{AUR|gstreamer0.10-good-plugins}} をインストールする必要があります。
   
 
=== OpenAL ===
 
=== OpenAL ===
137行目: 230行目:
 
alsa ドライバーの {{ic|1=dev=default}} オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。
 
alsa ドライバーの {{ic|1=dev=default}} オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。
   
  +
{{Note|{{pkg|pulseaudio-alsa}} をインストールした場合、ALSA のデフォルトデバイスは PulseAudio なので、libao の標準の ''alsa'' ドライバとそのデフォルトデバイスへの出力を維持することもできます。}}
{{Note|You could possibly also keep the libao standard of outputting to the ''alsa'' driver and its default device if you install {{pkg|pulseaudio-alsa}} since the ALSA default device then '''is''' PulseAudio.}}
 
   
 
=== ESD ===
 
=== ESD ===
185行目: 278行目:
 
PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。
 
PulseAudio サポートはデフォルトの KDE サウンドミキサーである KMix にマージされています。
   
phonon-gstreamer バックエンドを Phonon に使っている場合、{{Pkg|gstreamer0.10-good-plugins}} をインストールして GStreamer も PulseAudio を使うように[[#GStreamer|設定]]してください。
+
phonon-gstreamer バックエンドを Phonon に使っている場合、{{AUR|gstreamer0.10-good-plugins}} をインストールして GStreamer も PulseAudio を使うように[[#GStreamer|設定]]してください。
   
 
{{ic|load-module module-device-manager}} を {{ic|/etc/pulse/default.pa}} に追加するのが有用です。
 
{{ic|load-module module-device-manager}} を {{ic|/etc/pulse/default.pa}} に追加するのが有用です。
   
さらに、KMix や pavucontrol の KDE 代替として [[Arch User Repository|AUR]] から {{AUR|kdeplasma-applets-veromix}} が利用できます。
+
さらに、KMix や pavucontrol の KDE 代替として [[Arch User Repository|AUR]] から {{AUR|kdeplasma-applets-veromix}}{{Broken package link|{{aur-mirror|kdeplasma-applets-veromix}}}} が利用できます。
 
KMix/Veromix が起動時に PulseAudio への接続に失敗する場合は {{ic|/etc/pulse/client.conf}} を編集して {{ic|autospawn &#61; no}} を {{ic|autospawn &#61; yes}} に置き換える必要があるかもしれません。
 
   
 
=== Xfce ===
 
=== Xfce ===
201行目: 292行目:
 
=== Audacious ===
 
=== Audacious ===
   
[[Audacious|Audacious]] は PulseAudio にもとから対応しています。利用するためには、Audacious で 設定→オーディオ→出力プラグイン で「PulseAudio 出力」に設定しましょう。
+
[[Audacious]] は PulseAudio にもとから対応しています。利用するためには、Audacious で 設定→オーディオ→出力プラグイン で「PulseAudio 出力」に設定しましょう。
   
 
=== Java/OpenJDK 6 ===
 
=== Java/OpenJDK 6 ===
209行目: 300行目:
 
=== Music Player Daemon (MPD) ===
 
=== Music Player Daemon (MPD) ===
   
PulseAudio を使うように [[Music Player Daemon|MPD]] を [http://mpd.wikia.com/wiki/PulseAudio 設定] してください。[[MPD/Tips and Tricks#MPD and PulseAudio]] を参照。
+
PulseAudio を使うように [[Music Player Daemon|MPD]] を [http://mpd.wikia.com/wiki/PulseAudio 設定] してください。[[Music Player Daemon/ヒントとテクニック#PulseAudio]] を参照。
   
 
=== MPlayer ===
 
=== MPlayer ===
   
[[MPlayer|MPlayer]] はネイティブで PulseAudio 出力をサポートしており "{{ic|-ao pulse}}" オプションを使います。PulseAudio への出力をデフォルトに設定することも可能で、ユーザー別の設定には {{ic|~/.mplayer/config}} で、システム全体では {{ic|/etc/mplayer/mplayer.conf}} で設定します:
+
[[MPlayer]] はネイティブで PulseAudio 出力をサポートしており "{{ic|-ao pulse}}" オプションを使います。PulseAudio への出力をデフォルトに設定することも可能で、ユーザー別の設定には {{ic|~/.mplayer/config}} で、システム全体では {{ic|/etc/mplayer/mplayer.conf}} で設定します:
 
{{hc|/etc/mplayer/mplayer.conf|2=ao=pulse}}
 
{{hc|/etc/mplayer/mplayer.conf|2=ao=pulse}}
   
222行目: 313行目:
 
=== guvcview ===
 
=== guvcview ===
   
PulseAudio で {{Pkg|guvcview}} を使用すると[[Webcam Setup|ウェブカメラ]]からの入力で音声入力が中止され音声が記録されないことがあります。次を実行して確認できます:
+
PulseAudio で {{Pkg|guvcview}} を使用すると[[ウェブカメラ設定|ウェブカメラ]]からの入力で音声入力が中止され音声が記録されないことがあります。次を実行して確認できます:
 
$ pactl list sources
 
$ pactl list sources
 
音声ソースが "suspended" になっている場合 {{ic|/etc/pulse/default.pa}} の以下の行を:
 
音声ソースが "suspended" になっている場合 {{ic|/etc/pulse/default.pa}} の以下の行を:
230行目: 321行目:
 
PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。
 
PulseAudio を再起動すれば音声ソースが中止される代わりにアイドル状態になるようになります。これで guvcview でデバイスから音声を正しく記録できるようになるはずです。
   
== トラブルシューィング ==
+
== ヒンクニック ==
   
=== トールしたあと音が鳴らない ===
+
=== キーボードのボリュームコントール ===
   
  +
以下のコマンドをボリュームキーにマッピングしてください: {{ic|XF86AudioRaiseVolume}}, {{ic|XF86AudioLowerVolume}}, {{ic|XF86AudioMute}}。
==== オーディオデバイスがミュートになっている ====
 
   
  +
まず制御したい音声出力に対応する sink を確認します。sink を確認するには:
もし、ALSAの利用中にどうやっても音が鳴らないならば、サウンドカードのミュート設定を外しましょう。そのためには、{{ic|alsamixer}} を実行して、それぞれの列の下部が緑色の「00」になっているようにします( {{ic|m}} キーを押すことで切り替えます):
 
  +
pactl list sinks short
$ alsamixer -c 0
 
   
  +
ボリュームを上げるには:
{{Note|alsamixer は、どの再生デバイスがデフォルトになっているかを教えてくれません。インストール後に音が鳴らない理由としては、pulseaudio が異なる再生デバイスをデフォルトとして検出してしまったことが考えられます。{{Pkg|pavucontrol}} をインストールして、''.wav'' ファイルを再生しながら、どこかに出力されていないか pavucontrol パネルで確認しましょう。}}
 
  +
sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"
   
  +
ボリュームを下げるには:
==== Auto-Mute モード ====
 
  +
sh -c "pactl set-sink-mute 0 false ; pactl -- set-sink-volume 0 -5%"
   
  +
ボリュームをミュート(解除)するには:
Auto-Mute モードが有効になっているのかもしれません。{{ic|alsamixer}} を使って無効にできます。
 
  +
pactl set-sink-mute 0 toggle
   
  +
マイクをミュート(解除)するには:
詳しくは http://superuser.com/questions/431079/how-to-disable-auto-mute-mode を見て下さい。
 
  +
pactl set-source-mute 1 toggle
   
  +
{{Tip|
==== 設定ファイルが間違っている ====
 
  +
* キーボードショートカットを常にデフォルトのシンクで動作させるには、シンク番号に {{ic|@DEFAULT_SINK@}} を指定します。例えば、{{ic|pactl set-sink-mute @DEFAULT_SINK@ toggle}}.
 
  +
* 最大音量の制限など、より高度な制御を行う場合は、[[#コンソール|コンソールフロントエンド]]の利用を検討してください。
pulseaudio を起動した後、システムが音を出力しない場合、{{ic|~/.pulse}} の中身を削除する必要があるかもしれません。Pulseaudio は次の起動時に新しい設定ファイルを自動的に作成します。
 
 
==== Flash コンテンツ ====
 
 
Adobe Flash は PulseAudio を直接サポートしていないため[[#ALSA|仮想の PulseAudio サウンドカードを使うように ALSA を設定する]]のが推奨されています。
 
 
もしくは [[Arch User Repository|AUR]] にある {{AUR|libflashsupport-pulse}} を使うこともできます。
 
{{Note|このパッケージは Flash プラグインをクラッシュさせる可能性があります。}}
 
 
Flash からの音声にラグが生じる場合、Flash が直接 ALSA にアクセスできるようにしたほうが良いかもしれません。場合によってはこれで問題が解決することがあります。直接アクセスを許可するには、[[#ALSA/dmix でハードウェアデバイスを占有しない|PulseAudio が dmix を使うように設定]]してください。
 
 
==== カードが表示されない ====
 
 
PulseAudio が起動している場合、{{ic|pacmd list}} を実行してください。カードが全く表示されないときは、ALSA デバイスが使われていないか確認してください:
 
$ fuser -v /dev/snd/*
 
$ fuser -v /dev/dsp
 
 
pcm や dsp ファイルを使用するアプリケーションは PulseAudio を再起動する前にシャットダウンしてください。
 
 
==== "dummy output" しかデバイスが表示されない ====
 
 
この問題は様々な原因が考えられますが、その一つは $HOME にある {{ic|.asoundrc}} ファイルがシステム全体の {{ic|/etc/asound.conf}} よりも優先されてしまうということです。
 
 
このユーザーファイルは {{ic|asoundconf}} ツールやグラフィカルな {{ic|asoundconf-gtk}} (メニューでは "Default sound card" という名前が付けられます) が起動した時も変更が加えられます。{{ic|.asoundrc}} が使われるのを止めるには以下のように最後の行をコメントアウトしてください:
 
{{hc|.asoundrc|
 
# </home/''yourusername''/.asoundrc.asoundconf>
 
 
}}
 
}}
   
  +
=== X11 ベルイベント ===
特定のプログラムがオーディオデバイスを独占していまっている可能性もあります:
 
{{hc|# fuser -v /dev/snd/*|
 
USER PID ACCESS COMMAND
 
/dev/snd/controlC0: root 931 F.... timidity
 
bob 1195 F.... panel-6-mixer
 
/dev/snd/controlC1: bob 1195 F.... panel-6-mixer
 
bob 1215 F.... pulseaudio
 
/dev/snd/pcmC0D0p: root 931 F...m timidity
 
/dev/snd/seq: root 931 F.... timidity
 
/dev/snd/timer: root 931 f.... timidity
 
}}
 
   
  +
pulseaudio で X11 のベルイベントを処理するには、X11 セッションが起動した後に以下のコマンドを実行:
上記の例では timidity によって pulseaudio のオーディオデバイスへのアクセスがブロックされています。timidity を終了すればまた音が出るようになります。
 
   
  +
pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell
他にも [[FluidSynth|FluidSynth]] が PulseAudio と衝突することもあります。[https://bbs.archlinux.org/viewtopic.php?id=154002 このスレッド]を参照。解決方法は FluidSynth を削除することです:
 
  +
pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY
   
  +
X11 ベルのボリュームを調整するには、以下のコマンドを実行:
# pacman -Rnsc fluidsynth
 
   
  +
xset b 100
==== デバイスで HDMI 5/7.1 を選択できない ====
 
使用している HDMI デバイスで 5/7.1 チャンネル出力が選択できない場合、{{ic|/etc/pulse/default.pa}} で "stream device reading" をオフにすると解決するかもしれません。
 
   
  +
100 はパーセンテージです。上記のコマンドを使うには {{Pkg|xorg-xset}} パッケージが必要です。X11 セッションが起動したときに自動的にコマンドを実行する方法は[[自動起動]]を参照。
[[#Fallback デバイスが反映されない]] を見て下さい。
 
   
==== KDE Plasma ワークスペース ====
+
=== Switch on connect ===
  +
新しく接続されたデバイスに音声出力を切り替えるモジュールです。例えば、USB ヘッドセットを接続した場合、出力がそれに切り替わります。切断したときは、出力は元のデバイスに戻ります。大量にバグが存在していましたが PulseAudio 8.0 になって注目を集め、今では問題なく動くようになっています。
   
  +
モジュールをテストしていみたい場合、次を実行することでロードできます:
おそらく phonon で他の出力デバイスが優先するように設定されています。優先の出力デバイスが上にくるようになっているか全ての設定をチェックして、{{ic|kmix}} の再生ストリームタブを確認してアプリケーションが使っている出力デバイスを確認してください。
 
  +
# pactl load-module module-switch-on-connect
   
  +
変更を永続化させたい場合、ローカルの pulseaudio 設定あるいは {{ic|/etc/pulse/default.pa}} (システム設定) に以下の行を追加してください:
デフォルトのオーディオデバイスを見るには、次を実行します:
 
  +
load-module module-switch-on-connect
   
  +
KDE/Plasma5 では更に module-device-manager を無効化してください。Plasma5 は起動するとすぐに (start-pulseaudio-x11 によって) pulseaudio でデバイスを管理するために module-device-manager モジュールをロードします。しかしながら、このモジュールは module-switch-on-connect と競合します。{{ic|/bin/start-pulseaudio-x11}} を編集して KDE の行をコメントアウトすることでモジュールを無効化できます。pulseaudio セッションを新しくするために一度ログアウトしてからログインしなおしてください。
pactl stat
 
   
  +
== トラブルシューティング ==
利用可能なオーディオデバイスを見るには:
 
 
pactl list
 
 
デフォルトのオーディオデバイスを設定するには、"pacmd" を使うか、以下を {{ic|/etc/pulse/default.pa}} に追加します:
 
set-default-sink alsa_output.analog-stereo
 
 
==== Failed to create sink input: sink is suspended ====
 
 
音声が出力されず、{{ic|journalctl -b}} ログに sink の休止に関する多数のエラーが表示される場合、まずユーザー別の pulse フォルダをバックアップして、それから削除してみてください:
 
 
$ rm -r ~/.pulse ~/.pulse-cookie
 
 
=== モニターの電源を切ると HDMI のサウンド出力がなくなる ===
 
 
モニターが HDMI/DisplayPort で接続されていて、音声端子がモニターのヘッドフォンジャックに挿入されているのに、pulseaudio が接続されていないと認識する場合:
 
{{hc|pactl list sinks|
 
...
 
hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)
 
...
 
}}
 
 
この場合 HDMI 出力から音声は流れません。この問題の対応策は他の TTY に切り替えてから元に戻すことです。この問題は ATI/Nvidia/Intel ユーザーによって報告されています。
 
 
=== pavucontrol でサウンドデバイスの設定を更新できない ===
 
 
{{Pkg|pavucontrol}} は pulseaudio を設定するための手頃な GUI ユーティリティです。'Configuration' タブから、サウンドデバイスごとに異なるプロファイルを選択することができます。例えばアナログ・ステレオ、デジタル出力 (IEC958)、HDMI 5.1 サラウンドなど。
 
 
However, you may run into an instance where selecting a different profile for a card results in the pulse daemon crashing and auto restarting without the new selection "sticking". If this occurs, use the other useful GUI tool, {{Pkg|paprefs}}, to check under the "Simultaneous Output" tab for a virtual simultaneous device. If this setting is active (checked), it will prevent you changing any card's profile in pavucontrol. Uncheck this setting, then adjust your profile in pavucontrol prior to re-enabling simultaneous output in paprefs.
 
 
=== 複数のサウンドカード・デバイスの同時出力 ===
 
 
2つの異なるデバイスに同時出力するのはとても便利です。例えば、グラフィックカードの HDMI 出力から A/V レシーバに音声を送りながら、マザーボードのオンボードオーディオのアナログ出力から同じ音声を出力するなどが考えられます。以前と比べて同時出力はずっと簡単になりました (この例では GNOME デスクトップを使います)。
 
 
{{Pkg|paprefs}} を使って、"Simultaneous Output" タブから "Add virtual output device for simultaneous output on all local sound cards" を選択します。そして、GNOME の "sound settings" で作成した同時出力を選択してください。
 
 
これで動作しない場合、以下を {{ic|~/.asoundrc}} に追加してみてください:
 
 
pcm.dsp {
 
type plug
 
slave.pcm "dmix"
 
}
 
 
=== 同一サウンドカード上の複数の sink への同時出力が使えない ===
 
This can be useful for users who have multiple sound sources and want to play them on different sinks/outputs.
 
An example use-case for this would be if you play music and also voice chat and want to output music to speakers (in this case Digital S/PDIF) and voice to headphones. (Analog)
 
 
This is sometimes auto detected by pulseaudio but not always. If you know that your soundcard can output to both Analog and S/PDIF at the same time and pulseaudio does not have this option in it's profiles in pavucontrol, or veromix then you probably need to create a configuration file for your soundcard.
 
 
More in detail you need to create a profile-set for your specific soundcard.
 
This is done in two steps mostly.
 
*Create udev rule to make pulseaudio choose your pulseaudio configuration file specific to the soundcard.
 
* Create the actual configuration.
 
 
Create a pulseadio udev rule.
 
{{Note| This is only an example for Asus Xonar Essence STX.
 
Read [[udev]] to find out the correct values.}}
 
{{Note| Your configuration file should have lower number than the original pulseaudio rule to take effect.}}
 
{{hc|/usr/lib/udev/rules.d/90-pulseaudio-Xonar-STX.rules|
 
ACTION&#61;&#61;"change", SUBSYSTEM&#61;&#61;"sound", KERNEL&#61;&#61;"card*", \
 
ATTRS&#123;subsystem_vendor&#125;&#61;&#61;"0x1043", ATTRS&#123;subsystem_device&#125;&#61;&#61;"0x835c", ENV&#123;PULSE_PROFILE_SET&#125;&#61;"asus-xonar-essence-stx.conf"
 
}}
 
 
Create now a configuration file. If you bother you can start from scratch and make if saucy. However you can also use the default configuration file rename it and then add your profile there that you know works. Less pretty but also faster.
 
 
To enable multiple sinks for Asus Xonar Essence STX you need only to add this in.
 
{{Note|{{ic|asus-xonar-essence-stx.conf}} also includes all code/mappings from {{ic|default.conf}}.}}
 
{{hc|/usr/share/pulseaudio/alsa-mixer/profile-sets/asus-xonar-essence-stx.conf|
 
[Profile analog-stereo+iec958-stereo]
 
description &#61; Analog Stereo Duplex + Digital Stereo Output
 
input-mappings &#61; analog-stereo
 
output-mappings &#61; analog-stereo iec958-stereo
 
skip-probe &#61; yes
 
}}
 
 
This will auto-profile your Asus Xonar Essence STX with default profiles and add your own profile so you can have multiple sinks.
 
 
You need to create another profile in the configuration file if you want to have the same functionality with AC3 Digital 5.1 output.
 
 
[https://www.freedesktop.org/wiki/Software/PulseAudio/Backends/ALSA/Profiles/ See pulseaudio article about profiles]
 
 
=== Bluetooth サポートを無効にする ===
 
 
Bluetooth を使っていない場合 journal に以下のエラーが表示されることがあります:
 
 
bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.bluez was not provided by any .service files
 
 
PulseAudio の Bluetooth サポートを無効にするには、使用している設定ファイル ({{ic|~/.config/pulse/default.pa}} もしくは {{ic|/etc/pulse/default.pa}}) 内の以下の行をコメントアウトしてください:
 
 
{{hc|~/.config/pulse/default.pa|
 
### Automatically load driver modules for Bluetooth hardware
 
#.ifexists module-bluetooth-policy.so
 
#load-module module-bluetooth-policy
 
#.endif
 
 
#.ifexists module-bluetooth-discover.so
 
#load-module module-bluetooth-discover
 
#.endif
 
}}
 
 
=== Bluetooth ヘッドセットの再生の問題 ===
 
 
bluetooth 接続でデータが送信されず大きな遅延が発生したり、音が鳴らないという[https://bbs.archlinux.org/viewtopic.php?id=117420 報告]をしているユーザーが確認されています。これは {{ic|module-suspend-on-idle}} モジュールが原因です。このモジュールはアイドル状態の時に sink/source を自動的にサスペンドさせます。結果として、ヘッドセットで必要なモジュールが無効化されてしまうという問題が発生することがあります。
 
 
{{ic|module-suspend-on-idle}} モジュールのロードを無効にするには、使っている設定ファイル ({{ic|~/.config/pulse/default.pa}} または {{ic|/etc/pulse/default.pa}}) の以下の行をコメントアウトしてください:
 
 
{{hc|~/.config/pulse/default.pa|
 
### Automatically suspend sinks/sources that become idle for too long
 
#load-module module-suspend-on-idle
 
}}
 
 
そして PulseAudio を再起動して変更を適用してください。
 
 
=== Bluetooth や USB ヘッドセットの自動切り替え ===
 
 
以下を追加してください:
 
{{hc|/etc/pulse/default.pa|
 
# automatically switch to newly-connected devices
 
load-module module-switch-on-connect
 
}}
 
 
=== Pulse が ALSA の設定を上書きする ===
 
 
alsa デーモンがロードされている場合でも、Pulseaudio は基本的に ALSA の設定 (例えば alsamixer の設定) を起動時に上書きします。上書きを止めさせる方法は存在しないため、pulseaudio が起動した後に alsa の設定を戻すのが対処法になります。以下のコマンドを {{ic|.xinitrc}} や {{ic|.bash_profile}} などの [[Autostarting|autostart]] ファイルに追加してください:
 
 
restore_alsa() {
 
while [ -z "$(pidof pulseaudio)" ]; do
 
sleep 0.5
 
done
 
alsactl -f /var/lib/alsa/asound.state restore
 
}
 
restore_alsa &
 
 
=== Pulse が再起動するのを止める ===
 
 
たまに Pulse を一時的に無効にしたい場合があるかもしれません。そのようなときは Pulse を終了した後に再起動しないようにする必要があります。
 
 
{{hc|~/.config/pulse/client.conf|2=
 
# Disable autospawning the PulseAudio daemon
 
autospawn = no
 
}}
 
 
=== デーモンの起動が失敗する ===
 
 
PulseAudio を再設定して見て下さい:
 
$ rm -rf /tmp/pulse* ~/.pulse*
 
$ pulseaudio -k
 
$ pulseaudio --start
 
 
サーバーが動作していないのに PulseAudio がエラーメッセージ "User-configured server at ... refusing to start/autospawn" で起動できない場合、おそらく以前のログインでの PulseAudio の設定が問題です。{{ic|pax11publish -d}} で X11 ルートウィンドウに古いプロパティが付けられていないか確認してください。もし古いプロパティがある場合は、サーバーを起動する前に {{ic|pax11publish -r}} で削除してください。この手動消去は LXDM を使うときは必ず必要になります。LXDM はログアウトで X サーバーを再起動しないためです。[[LXDM#PulseAudio]] を見て下さい。
 
 
==== inotify の問題 ====
 
 
上の修正で解決しないときは、以下のようなエラーが表示されないか確認してください:
 
{{hc|$ pulseaudio -vvvv|
 
E: [pulseaudio] module-udev-detect.c: You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.
 
}}
 
 
エラーが表示されるなら、inotify の監視数が上限に達しています。
 
 
次のコマンドで簡単に解決できます:
 
# echo 100000 > /proc/sys/fs/inotify/max_user_watches
 
 
永続的に変更させるには、次を使って下さい:
 
{{hc|/etc/sysctl.d/99-sysctl.conf|2=
 
# Increase inotify max watchs per user
 
fs.inotify.max_user_watches = 100000
 
}}
 
 
=== Glitches, skips or crackling ===
 
 
PulseAudio サウンドサーバの新しい実装では旧来の割り込みを使用する方法に変わってタイマーベースのオーディオスケジューリングを使っています。
 
 
タイマーベースのスケジューリングはいくつかの ALSA ドライバーで問題を発生する可能性があります。他方では、タイマーベースのスケジューリングがないと不調になるドライバーもあります。あなたのシステムで何が動作しているのか確認してください。
 
 
タイマーベースのスケジューリングを無効にするには {{ic|/etc/pulse/default.pa}} に {{ic|1=tsched=0}} を追加してください:
 
{{hc|/etc/pulse/default.pa|<nowiki>
 
load-module module-udev-detect tsched=0
 
</nowiki>}}
 
 
それから PulseAudio サーバーを再起動してください:
 
$ pulseaudio -k
 
$ pulseaudio --start
 
 
タイマーベースのスケジューリングがデフォルトで有効になっていなかった場合、逆を行なって下さい。
 
 
Intel の IOMMU を使っていると問題が発生することもあります。IOMMU を使っていて中断やスキップなどが起こる場合 {{ic|<nowiki>intel_iommu=igfx_off</nowiki>}} をカーネルコマンドラインに追加してください。
 
 
問題が起こるカードは [http://pulseaudio.org/wiki/BrokenSoundDrivers PulseAudio Broken Sound Driver のページ] で報告してください。
 
 
=== Pulseaudio におけるデフォルトのフラグメント・バッファサイズを設定する ===
 
 
==== オーディオデバイスのパラメータを調べる (1/4) ====
 
 
サウンドカードのバッファリング設定を見つけるには:
 
$ echo autospawn = no >> ~/.config/pulse/client.conf
 
$ pulseaudio -k
 
$ LANG=C timeout --foreground -k 10 -s kill 10 pulseaudio -vvvv 2>&1 | grep device.buffering -B 10
 
$ sed -i '$d' ~/.config/pulse/client.conf
 
 
Pulseaudio によって検出されたサウンドカードごとに、以下のような出力が表示されます:
 
I: [pulseaudio] source.c: alsa.long_card_name = "HDA Intel at 0xfa200000 irq 46"
 
I: [pulseaudio] source.c: alsa.driver_name = "snd_hda_intel"
 
I: [pulseaudio] source.c: device.bus_path = "pci-0000:00:1b.0"
 
I: [pulseaudio] source.c: sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
 
I: [pulseaudio] source.c: device.bus = "pci"
 
I: [pulseaudio] source.c: device.vendor.id = "8086"
 
I: [pulseaudio] source.c: device.vendor.name = "Intel Corporation"
 
I: [pulseaudio] source.c: device.product.name = "82801I (ICH9 Family) HD Audio Controller"
 
I: [pulseaudio] source.c: device.form_factor = "internal"
 
I: [pulseaudio] source.c: device.string = "front:0"
 
I: [pulseaudio] source.c: device.buffering.buffer_size = "768000"
 
I: [pulseaudio] source.c: device.buffering.fragment_size = "384000"
 
 
該当するサウンドカードの buffer_size と fragment_size の値をメモして下さい。
 
 
==== ミリ秒のフラグメントサイズとフラグメントの数を計算する (2/4) ====
 
 
PulseAudio のデフォルトのサンプリングレートとビット深度は {{ic|44100Hz}} @ {{ic|16 bits}} に設定されています。
 
 
この設定の場合、必要なビットレートは {{ic|44100}}*{{ic|16}} = {{ic|705600}} ビット毎秒です。ステレオなら {{ic|1411200 bps}} になります。
 
 
前のステップで見つけたパラメータを見てみましょう:
 
 
device.buffering.buffer_size = "768000" => 768000/1411200 = 0.544217687075s = 544 msecs
 
device.buffering.fragment_size = "384000" => 384000/1411200 = 0.272108843537s = 272 msecs
 
 
==== Pulseaudio の設定ファイルを修正する (3/4) ====
 
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
; default-fragments = X
 
; default-fragment-size-msec = Y
 
</nowiki>}}
 
 
前のステップで、フラグメントサイズのパラメータを計算しました。
 
フラグメントの数字は buffer_size/fragment_size になり、この場合 ({{ic|544/272}}) で {{ic|2}} です:
 
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
; default-fragments = '''2'''
 
; default-fragment-size-msec = '''272'''
 
</nowiki>}}
 
 
==== Pulseaudio デーモンを再起動する (4/4) ====
 
 
$ pulseaudio -k
 
$ pulseaudio --start
 
 
詳しくは次を参照してください: [http://forums.linuxmint.com/viewtopic.php?f=42&t=44862 Linux Mint topic]
 
 
=== 音がズレる ===
 
 
この問題はバッファサイズが適当でないことが原因です。
 
 
(もし存在するならば)以下のエントリに加えた修正を無効にするか、それでも問題が解決しない場合、アンコメントしてください:
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
default-fragments = 8
 
default-fragment-size-msec = 5
 
</nowiki>}}
 
 
=== 音が歪んだり途切れる ===
 
 
サンプルレートの設定が間違っているために pulsaudio で音がとぎれるようになっている可能性があります。次を試して下さい:
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
default-sample-rate = 48000
 
</nowiki>}}
 
それから PulseAudio サーバーを再起動してください。
 
 
OpenAL を使っているアプリケーションで音が途切れるような場合は、{{ic|/etc/openal/alsoft.conf}} のサンプルレートを変更してください:
 
frequency = 48000
 
 
PCM ボリュームを 0dB より高く設定すると音声信号にクリッピングが発生することがあります。{{ic|alsamixer -c0}} を実行すればボリュームが問題なのか確認でき、修正することが可能です。ALSA は PulseAudio に dB 情報を [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/PulseAudioStoleMyVolumes 正しく伝えられない] ことがあります。次を試して:
 
{{hc|/etc/pulse/defaults.pa|<nowiki>
 
load-module module-udev-detect ignore_dB=1
 
</nowiki>}}
 
PulseAudio サーバーを再起動してみてください。[[#ボリュームのカットオフで音が鳴らない|ボリュームのカットオフで音が鳴らない]]も参照。
 
 
=== ボリューム調整が上手く動かない ===
 
 
次を確認してください:
 
{{ic|/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common}}
 
 
If the volume does not appear to increment/decrement properly using {{ic|alsamixer}} or {{ic|amixer}}, it may be due to pulseaudio having a larger number of increments (65537 to be exact). Try using larger values when changing volume (e.g. {{ic|amixer set Master 655+}}).
 
 
=== Master ボリュームを調整するとアプリケーションごとのボリュームが変化する ===
 
これは PulseAudio がデフォルトで、絶対的なマスターボリュームに呼応する相対ボリュームではなく、フラットボリュームを使っていることが原因です。この設定が困る場合、PulseAudio デーモンの設定ファイルでフラットボリュームを無効にすることで、相対ボリュームを有効にすることができます:
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
flat-volumes = no
 
</nowiki>}}
 
and then restarting PulseAudio by executing
 
$ pulseaudio -k
 
$ pulseaudio --start
 
 
=== 新しいアプリケーションを起動するたびにボリュームが大きくなる ===
 
デフォルトの設定では、アプリケーション内でボリュームを変更すると、各アプリケーションだけに影響を与えるのではなく、グローバルなシステムボリュームがそのレベルに設定されるようになっているようです。そのためアプリケーションが起動時にボリュームを設定すると、システムボリュームが"跳ね上がる"ようになります。
 
 
これを修正するには、前のセクションで説明しているように、フラットボリュームを無効にしてください。Pulse を起動しなおして数秒したら、アプリケーションはグローバルなシステムボリュームの代わりにアプリケーション毎のボリュームレベルを変更するようになっているはずです。
 
 
{{Note|A previously installed and removed pulseaudio-equalizer may leave behind remnants of the setup in {{ic|~/.pulse/default.pa}} which can also cause maximized volume trouble. Comment that out as needed.}}
 
 
=== ThinkPad T400/T500/T420 でマイクが使えない ===
 
 
次を実行してください:
 
alsamixer -c 0
 
"Internal Mic" のボリュームを最大化/アンミュートします。
 
 
Once you see the device with:
 
arecord -l
 
you might still need to adjust the settings. The microphone and the audio jack are duplexed. Set the configuration of the internal audio in pavucontrol to ''Analog Stereo Duplex''.
 
 
=== Acer Aspire One でマイクが使えない ===
 
 
Install pavucontrol, unlink the microphone channels and turn down the left one to 0.
 
Reference: http://getsatisfaction.com/jolicloud/topics/deaf_internal_mic_on_acer_aspire_one#reply_2108048
 
 
=== M-Audio Audiophile 2496 サウンドカードで音声出力がモノラルになる ===
 
 
以下を追加してください:
 
{{hc|/etc/pulseaudio/default.pa|<nowiki>
 
load-module module-alsa-sink sink_name=delta_out device=hw:M2496 format=s24le channels=10 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
 
load-module module-alsa-source source_name=delta_in device=hw:M2496 format=s24le channels=12 channel_map=left,right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
 
set-default-sink delta_out
 
set-default-source delta_in
 
</nowiki>}}
 
 
=== マイク録音に雑音が入る ===
 
 
Skype, gnome-sound-recorder, arecord などでノイズが混じる場合、サウンドカードのサンプルレートが間違っています。サウンドハードウェアのサンプリング周波数を {{ic|/etc/pulse/daemon.conf}} で設定してください。
 
 
==== システムのサウンドカードを確かめる (1/5) ====
 
 
{{Pkg|alsa-utils}} と関連パッケージをインストールする必要があります:
 
{{hc|$ arecord --list-devices|
 
**** List of CAPTURE Hardware Devices ****
 
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
 
Subdevices: 1/1
 
Subdevice #0: subdevice #0
 
card 0: Intel [HDA Intel], device 2: ALC888 Analog [ALC888 Analog]
 
Subdevices: 1/1
 
Subdevice #0: subdevice #0
 
}}
 
 
サウンドカードは {{ic|hw:0,0}} になります。
 
 
==== サウンドカードのサンプリングレートを確かめる (2/5) ====
 
{{hc|1=arecord -f dat -r 60000 -D hw:0,0 -d 5 test.wav|2=
 
"Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 60000 Hz, Stereo
 
Warning: rate is not accurate (requested = 60000Hz, '''got = 96000Hz''')
 
please, try the plug plugin
 
}}
 
 
{{ic|1=got = 96000Hz}} に注目してください。これが使っているカードの最大サンプリングレートになります。
 
 
==== サウンドカードのサンプリングレートを pulse audio に設定する (3/5) ====
 
 
pulseaudio のデフォルトのサンプルレート:
 
{{hc|1=$ grep "default-sample-rate" /etc/pulse/daemon.conf|2=
 
; default-sample-rate = 44100
 
}}
 
 
{{ic|44100}} は無効にして {{ic|96000}} に変更する必要があります:
 
# sed 's/; default-sample-rate = 44100/default-sample-rate = 96000/g' -i /etc/pulse/daemon.conf
 
 
==== pulseaudio を再起動して新しい設定を適用する (4/5) ====
 
 
$ pulseaudio -k
 
$ pulseaudio --start
 
 
==== 最後に録音してから再生して確認する (5/5) ====
 
 
10秒ほど、マイクを使って何か録音してみてください。マイクロフォンがミュートになっていないことを確認してください。
 
$ arecord -f cd -d 10 test-mic.wav
 
 
10秒後、録音したものを再生してみましょう...
 
$ aplay test-mic.wav
 
 
上手くいっていれば、マイクの録音にノイズが混ざらなくなっているはずです。
 
 
=== Bluetooth デバイスをペアリングしても音が鳴らない ===
 
 
[[Bluez4#My_device_is_paired_but_no_sound_is_played_from_it|Bluetooth の記事のセクションを見て下さい]]
 
 
Starting from PulseAudio 2.99 and bluez 4.101 you should '''avoid''' using Socket interface. Do NOT use:
 
{{hc|/etc/bluetooth/audio.conf|<nowiki>
 
[General]
 
Enable=Socket
 
</nowiki>}}
 
If you face problems with A2DP and PA 2.99 make sure you have {{Pkg|sbc}} library.
 
 
=== 曲が終わるとサブウーファーが止まる ===
 
 
既知の問題: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/494099
 
 
これを修正するには、{{ic|/etc/pulse/daemon.conf}} を編集して {{ic|enable-lfe-remixing}} を有効にしてください:
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
enable-lfe-remixing = yes
 
</nowiki>}}
 
 
=== Pulseaudio で間違ったマイクが使われる ===
 
 
Pulseaudio が間違ったマイクロフォンを使っていて、Pavucontrol で Input Device を変更しても直らない場合、alsamixer を見て下さい。Pavucontrol が入力ソースを正しく設定していない可能性があります。
 
 
$ alsamixer
 
 
{{ic|F6}} を押してあなたの使っているサウンドカードを選択してください (例: HDA Intel)。そして {{ic|F5}} を押し全てのアイテムを表示します。次のアイテムを探して下さい: {{ic|Input Source}}。上下の矢印キーで入力ソースを変更することができます。
 
 
適切なマイクロフォンが録音に使われているか確かめて下さい。
 
 
=== アナログのサラウンド設定で音が途切れる ===
 
 
低域効果音 (low-frequency effects, LFE) チャンネルはデフォルトではリミックスされません。有効にするには以下を {{ic|/etc/pulse/daemon.conf}} で設定する必要があります:
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
enable-lfe-remixing = yes
 
</nowiki>}}
 
 
=== "Surround 4.0" 以外のサラウンド設定が選択できない ===
 
pavucontrol で "Analog Surround 4.0 Output" しか表示されず 5.1 サラウンド出力が設定できない場合、ALSA ミキサーを開いて出力設定を6チャンネルに変更してください。それから pulseaudio を再起動すれば、pavucontrol でもっと多くのオプションが表示されるようになります。
 
 
=== ボリュームのカットオフで音が鳴らない ===
 
 
既知の問題 (won't fix): https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/223133
 
 
Pulseaudio のボリュームが特定のレベル以下のときに音声が流れない場合、{{ic|/etc/pulse/default.pa}} で {{ic|1=ignore_dB=1}} を使ってみて下さい:
 
{{hc|/etc/pulse/default.pa|<nowiki>
 
load-module module-udev-detect ignore_dB=1
 
</nowiki>}}
 
 
ただし、ヘッドフォンや他のオーディオデバイスが接続されていないときに pulseaudio がスピーカーをアンミュートできないという他のバグが発生してしまう可能性があります。
 
 
=== 内蔵マイクのボリュームが小さい ===
 
 
ノートパソコン内蔵のマイクロフォンのボリュームが小さい時は、以下を設定して見て下さい:
 
{{hc|/etc/pulse/default.pa|<nowiki>
 
set-source-volume 1 300000
 
</nowiki>}}
 
 
=== クライアントが master の出力ボリュームを変えてしまう (アプリケーションを実行するとボリュームが 100% になる) ===
 
 
If changing the volume in specific applications or simply running an application changes the master output volume this is likely due to flat volumes mode of pulseaudio. Before disabling it, KDE users should try lowering their system notifications volume in ''System Settings -> Application and System Notifications -> Manage Notifications'' under the ''Player Settings'' tab to something reasonable. Changing the ''Event Sounds'' volume in KMix or another volume mixer application will not help here. This should make the flat-volumes mode work out as intended, if it does not work, some other application is likely requesting 100% volume when its playing something. If all else fails, you can try to disable flat-volumes:
 
{{hc|/etc/pulse/daemon.conf|<nowiki>
 
flat-volumes = no
 
</nowiki>}}
 
Then restart Pulseaudio daemon:
 
# pulseaudio -k
 
# pulseaudio --start
 
 
===リアルタイムスケジューリング===
 
rtkit が動作しない場合、PulseAudio がリアルタイムスケジューリングで動作するようにシステムを手動で設定することでパフォーマンスが改善されることがあります。これをするには、以下の行を {{ic|/etc/security/limits.conf}} に追加してください:
 
@pulse-rt - rtprio 9
 
@pulse-rt - nice -11
 
 
Afterwards, you need to add your user to the {{ic|pulse-rt}} group:
 
# gpasswd -a <user> pulse-rt
 
 
=== サスペンドから復帰した後に音が鳴らない ===
 
 
通常は音が鳴るのに、サスペンドから復帰すると停止する場合、次を実行して PulseAudio を"再ロード"してみてください:
 
$ /usr/bin/pasuspender /bin/true
 
 
これは PulseAudio を完全に終了して再起動するよりかはベターです ({{ic|pulseaudio -k}} の後に {{ic|pulseaudio --start}})、なぜなら動作中のアプリケーションを破壊しないからです。
 
 
上のコマンドで修正できたら、systemd のサービスファイルを作成することでこれを自動化できます。
 
 
1. {{ic|/etc/systemd/system/resume-fix-pulseaudio@.service}} にテンプレートのサービスファイルを作成してください:
 
 
[Unit]
 
Description=Fix PulseAudio after resume from suspend
 
After=suspend.target
 
 
[Service]
 
User=%I
 
Type=oneshot
 
Environment="XDG_RUNTIME_DIR=/run/user/%U"
 
ExecStart=/usr/bin/pasuspender /bin/true
 
 
[Install]
 
WantedBy=suspend.target
 
 
2. ユーザーアカウントで有効にしてください
 
 
# systemctl enable resume-fix-pulseaudio@YOUR_USERNAME_HERE.service
 
 
3. systemd をリロードしてください
 
 
# systemctl --system daemon-reload
 
 
=== ヘッドフォンの抜き差しと ALSA のチャンネルのミュート ===
 
If when you unplug your headphones or plug them in the audio remains muted in alsamixer on the wrong channel due to it being set to 0%, you may be able to fix it by opening {{ic|/etc/pulse/default.pa}} and commenting out the line:
 
load-module module-switch-on-port-available
 
 
=== pactl "invalid option" error with negative percentage arguments ===
 
{{ic|pactl}} コマンドに負のパーセンテージを引数としてわたすと 'invalid option' エラーが起こります。標準シェルの '--' 擬似引数を使って、負の引数の前の引数のパースを無効にしてください。例: {{ic|pactl set-sink-volume 1 -- -5%}}。
 
 
===Daemon already running===
 
 
システムによっては pulseaudio が複数回実行されることがあります。journalctl は次のように表示します:
 
 
[pulseaudio] pid.c: Daemon already running.
 
 
アプリケーションを自動実行する方法を一つだけに限って下さい。{{Pkg|pulseaudio}} には以下のファイルが含まれています:
 
 
* {{ic|/etc/X11/xinit/xinitrc.d/pulseaudio}}
 
* {{ic|/etc/xdg/autostart/pulseaudio.desktop}}
 
* {{ic|/etc/xdg/autostart/pulseaudio-kde.desktop}}
 
 
[[xinitrc|xinitrc]], {{ic|~/.config/autostart/}} などのユーザーの自動実行ファイル・ディレクトリも確認してください。
 
 
=== Fallback デバイスが反映されない ===
 
PulseAudio は本当のデフォルトデバイスを持っていません。代わりに新しいサウンドストリームにのみ適用される [http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/ "fallback"] を使用します。このため以前実行したアプリケーションは新しく設定した fallback デバイスの影響を受けません。
 
 
{{Pkg|gnome-control-center}} と {{Pkg|mate-media-pulseaudio}} だけがこれを上手く処理できます。もしくは:
 
 
1. {{Pkg|pavucontrol}} で古いストリームを手動で新しいサウンドカードに移動する。
 
 
2. Pulse を停止して、{{ic|~/.pulse}} の "stream-volumes" を消去して Pulse を再起動する。これはアプリケーションボリュームもリセットします。
 
 
3. ストリームデバイスの読み込みを無効化する。様々なサウンドカードで様々なアプリケーションを使う場合はあまり好ましくありません。
 
{{hc|/etc/pulse/defaults.pa|<nowiki>
 
load-module module-stream-restore restore_device=false
 
</nowiki>}}
 
 
=== enable-remixing = no を設定すると Steam や Skype でマイクが使えない ===
 
{{ic|/etc/pulse/daemon.conf}} に {{ic|1=enable-remixing = no}} を設定すると Skype や Steam など特定のアプリケーションでマイクロフォンが停止することがあります。これはアプリケーションがマイクロフォンをモノ音声のみとしてキャプチャしていて、リミキシングが無効になっているのが原因です。Pulseaudio はステレオのマイクロフォンをモノにリミックスしません。
 
 
これを修正するには Pulseaudio がリミックスするよう設定する必要があります:
 
 
1. ソースの名前を探して下さい
 
 
# pacmd list-sources
 
 
出力の例、必要な名前は太字になっています:
 
 
index: 2
 
name: <'''alsa_input.pci-0000_00_14.2.analog-stereo'''>
 
driver: <module-alsa-card.c>
 
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
 
 
2. リマップルールを {{ic|/etc/pulse/default.pa}} に追加、前のコマンドで見つけた名前を使って下さい。ここでは例として '''alsa_input.pci-0000_00_14.2.analog-stereo''' を使います:
 
 
{{hc|/etc/pulse/default.pa|<nowiki>
 
### Remap microphone to mono
 
load-module module-remap-source master=alsa_input.pci-0000_00_14.2.analog-stereo master_channel_map=front-left,front-right channels=2 channel_map=mono,mono
 
</nowiki>}}
 
 
3. Pulseaudio を再起動
 
 
# pulseaudio -k
 
 
マイクロフォンを使用するプログラムを終了していない場合 Pulseaudio が起動に失敗することがあります (例えばファイルを編集する前に Steam でテストした場合)、その場合はアプリケーションを終了して手動で Pulseaudio を起動してください:
 
   
  +
[[PulseAudio/トラブルシューティング]]を見て下さい。
# pulseaudio --start
 
   
 
== 参照 ==
 
== 参照 ==

2022年11月6日 (日) 16:28時点における最新版

関連記事

PulseAudio は、ALSAOSS を用いてアプリケーションとハードウェアデバイスの間でミドルウェアとして動作することを目的とした汎用サウンドサーバーです。また、Avahi を有効にするとことで、ローカルデバイス間で簡単にネットワークストリーミングを行うことができます。主な目的はオーディオの設定を簡単にすることですが、そのモジュール設計により、より高度なユーザが自分のニーズに合わせてデーモンを設定することができます。

ノート: ALSAと PulseAudio の間に若干の混乱が生じるかもしれません。ALSA には、サウンドカードドライバを含む Linux カーネルコンポーネントと、ユーザ空間コンポーネントの libasound があります。[1] PulseAudio はカーネルコンポーネントのみをベースにしていますが、pulseaudio-alsa によって libasound との互換性を提供しています。[2]

インストール

pulseaudio パッケージをインストールしてください。

PulseAudio のモジュールの中にはメインのパッケージと 分割 されているものがあり、必要に応じてインストールする必要があります:

ノート: ALSA と PulseAudio についてはややこしい部分があります。ALSA にはサウンドカードドライバーの Linux カーネルコンポーネントと、ユーザー空間のコンポーネントである libalsa の両方が含まれています [3]。PulseAudio はカーネルコンポーネントのみで作られますが、pulseaudio-alsa によって libalsa との互換性も取られています [4]

フロントエンド

PulseAudio デーモンを制御するための様々なフロントエンドが存在します:

設定

設定ファイル

デフォルトでは、PulseAudio は全てのサウンドカードを自動的に検出して管理するように設定されています。検出された ALSA デバイスを全て制御して音声ストリームを結集させることで、PulseAudio デーモンが設定の中心点になります。デーモンは基本的に特に設定をしなくても動作するので、必要な設定はほとんどありません。

PulseAudio はまずホームディレクトリの設定ファイル ~/.config/pulse を確認して、次にシステム全体の設定ファイル /etc/pulse を確認します。

PulseAudio はサーバーデーモンとして動作するので、クライアント・サーバーアーキテクチャを使ってシステム全体あるいはユーザー個別に起動することができます。デーモン自体はモジュールがないと何もしません。API を提供して動的にロードされたモジュールをホストするだけです。音声のルーティングなどの処理は全て様々なモジュールが担当します。利用可能なモジュールのリストは Pulseaudio Loadable Modules で確認できます。モジュールを有効化するには load-module <module-name-from-list> という行を ~/.config/pulse/default.pa に追加します。

ヒント:
  • システム全体の設定ファイルは編集しないことを推奨します。ユーザー個別の設定ファイルを使ってください。~/.config/pulse ディレクトリを作成して、システムの設定ファイルをコピーすることでユーザー個別の設定をすることができます。
  • パッケージに含まれている /etc/pulse/ のファイルに変更があったときはユーザーの設定もあわせるようにしてください。そうしないと、設定エラーで PulseAudio が起動しなくなる可能性があります。
  • ユーザーを audio グループに追加する必要はありません。udevlogind を使用して動的にユーザーに権限が与えられます。

daemon.conf

モジュールが使用するデフォルトのサンプルレート、リサンプリング方式、リアルタイムスケジューリング、サーバープロセスに関する設定など、基本的な設定を定義します。実行している間は変更できません。PulseAudio デーモンの再起動が必要です。ほとんどの場合、デフォルト設定で問題ありません。

ノート: PulseAudio は daemon.conf ファイルに記述されたパスのチルダを展開しません。ファイルを指定するときは絶対パスを使ってください。
重要な設定オプション
オプション 説明
system-instance system-wide インスタンスとしてデーモンを実行。セキュリティの問題が生まれるため非推奨です。ローカルユーザーが存在しない (ヘッドレス) システムで有用です。デフォルトは no
resample-method モジュール間で音声のサンプルレートが一致しない場合に使用するリサンプラー (例: 48kHz しか対応していないハードウェアで 96kHz の音声を再生する場合など)。利用可能なリサンプラーは $ pulseaudio --dump-resample-methods で確認できます。CPU の使用量と音質のトレードオフを考えて最適なものを選択してください。
ヒント: 場合によっては PulseAudio によって CPU の負担が跳ね上がることがあります。例えば複数のストリームを (個別に) リサンプルする場合などに起こりえます。そのようなことが頻繁に起こる場合、サンプルレートに対応する sink を新しく作成してメインの sink に送ることで、リサンプリングを一度で済ませることができます。
flat-volumes flat-volumes は一番音が大きいアプリケーションのボリュームにあわせてデバイスのボリュームを調整します。例えば、VoIP の呼び出し音声を上げるとハードウェアのボリュームが上がりますが、音声プレイヤーのボリュームは元のままになるように調整され、手動で音声プレイヤーのボリュームを下げなくてもいいようにします。開発元ではデフォルトで yes になっていますが、Arch においては no がデフォルトです。
ノート: 開発元のデフォルト設定は時として混乱を生み、アプリケーションによってはフラットボリューム機能に対応していないために、アプリケーションの起動時にボリュームが 100% に設定されることがあります。スピーカーや耳が破壊される恐れがあり大変危険です。そのため、Arch では flat-volumesno に設定することで古典的な (ALSA と同じ) 設定をデフォルトとしています。
default-fragments 音声サンプルは default-fragment-size-msec によって複数の断片に分割されます。バッファを大きくすればするほど、システムが過負担のときに音声がスキップされる可能性が減ります。ただし、副作用として全体的な遅延は大きくなります。問題が発生する場合はこの値を大きくしてみてください。

default.pa

このファイルはスタートアップスクリプトであり、モジュールを設定するのに使われています。デーモンが初期化を完了した後に読み込まれて解析されます。$ pactl$ pacmd を使うことでコマンドは追加で送信できます。また、$ pulseaudio -nC を使ってターミナルで PulseAudio を起動することで使用するスタートアップファイルを指定することもできます。その場合、デーモンは CLI モジュールをロードしてコマンドラインから直接設定を受け取って、同じターミナルに情報やエラーメッセージを出力します。デーモンをデバッグするときや、ディスクで永続的に設定する前にモジュールをテストしたい場合などに有用です。マニュアルページに詳しい説明が載っています。構文については man pulse-cli-syntax を読んでください。

ヒント:
  • 完全なコピーを記述するかわりに、~/.config/pulse/default.pa の最初の行を .include /etc/pulse/default.pa とすればデフォルト設定を上書きできます。
  • 利用可能な sink を確認するには $ pacmd list-sinks|egrep -i 'index:|name:' を実行してください。デフォルトの sink はアスタリスクの印が付きます。
  • ~/.config/pulse/default.pa を編集して set-default-sink コマンドを挿入・変更するときは sink の名前を使ってください。番号ではその順番で実行される保証がありません。

client.conf

全ての PulseAudio クライアントアプリケーションが読み込む設定ファイルです。個別のクライアントについて実行時のオプションを設定したいときに使います。デフォルトの sink や source を静的に設定できるだけでなく、サーバーが動作していないときに自動的に起動するクライアントを許可 (あるいは不許可) できます。

設定コマンド

実行している間にサーバーを設定するメインコマンドは $ pacmd です。オプションのリストを表示するには $ pacmd --help を実行してください。$ pacmd とだけ実行することでシェルインタラクティブモードに入ることができ Ctrl+d で終了します。変更した設定はすべて即座に適用されます。

新しい設定をテストして満足したら、default.pa を編集することで変更を永続化できます。基本的な設定は PulseAudio/サンプル を見てください。

ヒント: default.pa ファイルの load-module module-default-device-restore という行は変えないでください。デフォルトの状態でサーバーを再起動して、間違った設定を退けます。

選択されたハードウェアの "Profile" にあわせて PulseAudio で利用・選択することができる "source" (プロセス, キャプチャデバイス) と "sink" (サウンドカード, サーバー, 他のプロセス) を理解するのが重要です。"Profile" は aplay -L コマンドで確認できる ALSA の "pcm" であり、pacmd list-cards コマンドでもっと具体的に確認できます。"index:" 行や "profiles:" から始まるリスト、出力の "active profile: <...>" という行などです。

"active profile" は pacmd set-card-profile INDEX PROFILE コマンドで設定できます。INDEX と PROFILE の間にカンマは必要ありません。INDEX は pacmd list-cards コマンドで表示される "index:" 行の番号に、PROFILE の名前は "profile:" の下の行の最初から、コロンと空白までの文字列に置き換えてください。例: pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo

pavucontrol などのグラフィカルツールを使えばもっと簡単に "Profile" を選択できます ("Configuration" タブ)。KDE システム設定なら "Multimedia/Audio and Video Settings" の "Audio Hardware Setup" タブから設定できます。(aplay -lpacmd list-cards コマンドで確認できるデバイスと同じ) 音声の "Card" には、それぞれ "Profile" が選択されます。"Profile" を選択したら、pacmd list-sourcespacmd list-sinks コマンドで利用可能な "source" と "sink" が確認できます。利用可能な source と sink の "index" はカードのプロファイルが変更されるたびに変わるので注意してください。

アプリケーションによっては選択した "Profile" が問題になることがあります。特に Adobe Flash プレイヤーの /usr/lib/mozilla/plugins/libflashplayer.so/usr/lib/PepperFlash/libpepflashplayer.so はそうです。しばしば、Flash プレイヤーは Stereo プロファイルのどちらか片方を選択しないと機能せず、音声がない動画が再生されたり、あるいはクラッシュしたりします。あるプロファイルで駄目なら、別のプロファイルを選択してみてください。

もちろん、PulseAudio でサラウンド音声を設定する場合、適切な Surround プロファイルを選択する必要があります。

実行

バージョン 7.0 から、Arch においては PulseAudio はソケットアクティベーションを使います。デフォルト では、systemd/ユーザーインスタンスで pulseaudio.socket が有効になります。

ノート:
  • pulseaudio.socket を無効にするときは、$XDG_CONFIG_HOME/systemd/user/ が存在することを確認して systemctl --user mask pulseaudio.socket を実行してください。
  • ほとんどのデスクトップ環境では /etc/xdg/autostart/ ディレクトリにあるデスクトップファイルによってプログラムを自動で起動します。デスクトップ環境を使っている場合、ソケットアクティベーションとは無関係に PulseAudio は自動で起動します。

詳しくは PulseAudio: Running を参照してください。

手動で起動

X を起動した時に pulseaudio が自動で立ち上がらない場合は、次のコマンドで実行できます:

$ pulseaudio --start

次のコマンドで PulseAudio を停止できます:

$ pulseaudio --kill

イコライザー

pulseaudio の比較的新しいバージョンでは、統合された10帯域のイコライザーシステムが搭載されています。このイコライザーを有効にするためには、以下の作業が必要です。

pulseaudio-equalizer をインストールしてください。

equalizer sink と dbus-protocol モジュールをロードする

$ pactl load-module module-equalizer-sink
$ pactl load-module module-dbus-protocol

GUI フロントエンド

次を実行:

$ qpaeq
ノート: もし qpaeq が動作しなければ、 pavucontrol をインストールして、メディアプレイヤーの動作中に "ALSA Playback on" を "FFT based equalizer on ..." へ変更するとよいでしょう。

起動時に イコライザーと dbus モジュールをロードする

お好みのエディタで /etc/pulse/default.pa を開き、以下の行を追記します。

### Load the integrated pulseaudio equalizer and dbus module
load-module module-equalizer-sink
load-module module-dbus-protocol

バックエンドの設定

ALSA

ノート: この追加選択パッケージは、x86_64 環境で動作させる場合で、(Wineのような) 32 ビットプログラムでも音を鳴らすときには必要なものです。

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-goodgstreamer0.10-good-pluginsAUR をインストールする必要があります。

OpenAL

OpenAL Soft はデフォルトで PulseAudio を使いますが、明示的に設定することもできます:

/etc/openal/alsoft.conf
drivers=pulse,alsa

libao

libao の設定ファイルを編集してください:

# /etc/libao.conf
default_driver=pulse

alsa ドライバーの dev=default オプションを削除するか特定の Pulse の sink の名前・番号を指定してください。

ノート: pulseaudio-alsa をインストールした場合、ALSA のデフォルトデバイスは PulseAudio なので、libao の標準の alsa ドライバとそのデフォルトデバイスへの出力を維持することもできます。

ESD

PulseAudio は enlightened sound daemon (ESD) を完全に置き換えます。PulseAudio が動作している時、ESD クライアントは PulseAudio に何もしなくても出力できるはずです。

デスクトップ環境

X11

ノート: 前に述べた通り、もし DE をインストールしているのならば、/etc/X11/xinit/xinitrc.d/pulseaudio/etc/xdg/autostart/ のファイルによって PulseAudio は自動的に起動するはずです。

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-pluginsAUR をインストールして GStreamer も PulseAudio を使うように設定してください。

load-module module-device-manager/etc/pulse/default.pa に追加するのが有用です。

さらに、KMix や pavucontrol の KDE 代替として AUR から kdeplasma-applets-veromixAUR[リンク切れ: アーカイブ: aur-mirror] が利用できます。

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/ヒントとテクニック#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 でデバイスから音声を正しく記録できるようになるはずです。

ヒントとテクニック

キーボードのボリュームコントロール

以下のコマンドをボリュームキーにマッピングしてください: XF86AudioRaiseVolume, XF86AudioLowerVolume, XF86AudioMute

まず制御したい音声出力に対応する sink を確認します。sink を確認するには:

pactl list sinks short

ボリュームを上げるには:

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

マイクをミュート(解除)するには:

pactl set-source-mute 1 toggle
ヒント:
  • キーボードショートカットを常にデフォルトのシンクで動作させるには、シンク番号に @DEFAULT_SINK@ を指定します。例えば、pactl set-sink-mute @DEFAULT_SINK@ toggle.
  • 最大音量の制限など、より高度な制御を行う場合は、コンソールフロントエンドの利用を検討してください。

X11 ベルイベント

pulseaudio で X11 のベルイベントを処理するには、X11 セッションが起動した後に以下のコマンドを実行:

pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell
pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY

X11 ベルのボリュームを調整するには、以下のコマンドを実行:

xset b 100

100 はパーセンテージです。上記のコマンドを使うには xorg-xset パッケージが必要です。X11 セッションが起動したときに自動的にコマンドを実行する方法は自動起動を参照。

Switch on connect

新しく接続されたデバイスに音声出力を切り替えるモジュールです。例えば、USB ヘッドセットを接続した場合、出力がそれに切り替わります。切断したときは、出力は元のデバイスに戻ります。大量にバグが存在していましたが PulseAudio 8.0 になって注目を集め、今では問題なく動くようになっています。

モジュールをテストしていみたい場合、次を実行することでロードできます:

# pactl load-module module-switch-on-connect

変更を永続化させたい場合、ローカルの pulseaudio 設定あるいは /etc/pulse/default.pa (システム設定) に以下の行を追加してください:

load-module module-switch-on-connect

KDE/Plasma5 では更に module-device-manager を無効化してください。Plasma5 は起動するとすぐに (start-pulseaudio-x11 によって) pulseaudio でデバイスを管理するために module-device-manager モジュールをロードします。しかしながら、このモジュールは module-switch-on-connect と競合します。/bin/start-pulseaudio-x11 を編集して KDE の行をコメントアウトすることでモジュールを無効化できます。pulseaudio セッションを新しくするために一度ログアウトしてからログインしなおしてください。

トラブルシューティング

PulseAudio/トラブルシューティングを見て下さい。

参照