PulseaudioのデフォルトALSAデバイスの設定


8

最近、外部サウンドカード/ DAC(Fiio E17)を入手しましたが、現在、Ubuntu 12.04インストールでそれを適切に構成しようとしています。USB経由で接続すると、すぐに認識され、オーディオ設定で新しいデバイスとして表示されます。再生もほとんど問題なく動作します(ただし、この質問の範囲を超える、ボリュームに関するいくつかの小さな問題は除きます)。

ただし、このようなオーディオファイルをmplayerで再生して24ビット/ 96 kHzの再生をテストしようとすると、小さな問題が発生しました。

Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 96000 Hz, 2 ch, s24le, 4608.0 kbit/100.00% (ratio: 576000->576000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] 96000Hz 2ch s16le (2 bytes per sample)

出力からわかるように、再生されたファイルには24ビット/ 96 kHzのオーディオが含まれていますが、再生前に16ビットにリサンプリングされます。同じファイルを再生するとaplay理由が表示されます:

Playing WAVE 'sr003-02-2496.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
aplay: set_params:1081: Sample format non available
Available formats:
- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW

ただし、/proc/asound/card1/stream0ハードウェアが24ビットをサポートしていることを確認します。

FiiO FiiO USB DAC-E17 at usb-0000:00:1a.0-1.1, full speed : USB Audio

Playback:
  Status: Running
    Interface = 3
    Altset = 1
    Packet Size = 388
    Momentary freq = 44100 Hz (0x2c.199a)
  Interface 3
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 3 OUT (ADAPTIVE)
    Rates: 32000, 44100, 48000, 96000
  Interface 3
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 3 OUT (ADAPTIVE)
    Rates: 32000, 44100, 48000, 96000

この時点で、サウンド設定のハードウェアタブで、サウンドカードの2つの異なるプロファイルを選択できることに気付きました。デジタルステレオ(IEC958)とアナログステレオです。ただし、これら2つを切り替えても、私が知る限り、変更はありません。

ただし、ALSAデバイスを指定すると役立ちます(つまり、aplay -Dhw:1,0 sr003-02-2496.wav正常に機能し、リサンプリングせずにファイルを再生します)。しかし、Pulseaudioはサウンド設定で1つのFiioデバイス/シンクしか表示しないため、PulseaudioにALSAデバイスを使用するように指示する方法がわかりませんhw:1,0。追加load-module module-alsa-source device=hw:1,0する/etc/pulse/default.pamodule.c: Failed to load module "module-alsa-source" (argument: "device=hw:1,0"): initialization failed.、起動時にPulseaudioが異常終了します。

だから、それが序論です、これが私の実際の質問です:

  • サウンド設定でFiio E17を選択したときにPulseaudioが実際に使用するALSAデバイスを確認するにはどうすればよいですか?
  • サウンド設定でFiio E17を選択するときに、PulseaudioにALSAデバイスhw:1,0を使用するように指示するにはどうすればよいですか?

さらに(うまくいけば役立つ)デバッグ情報:


何であるmplayeraplayコマンドラインは?
CL。

@CL。私が実行mplayer -ao alsa:device=hw=1.0 sr003-02-2496.wavaplay -Dhw:1,0 sr003-02-2496.wav、正しいデバイスを使用します。
tmnt 2013年

うまくいかなかった通話について尋ねていました。そして、PulseAudioを使用したいですか?
CL。

@CL。ああ、申し訳ありませんが、これらはフラグのない通常の呼び出しです。つまりaplay sr003-02-2496.wav、およびmplayer sr003-02-2496.wavです。はい、可能であればPulseAudioを使用したいと思います。
tmnt 2013年

回答:


8

2つの質問への回答:

GNOMEボリュームコントロールやpavucontrolなどのGUIを使用して、またはコマンドラインからを使用して、PulseAudioのデフォルトデバイスを選択できますpacmd set-default-sink

デフォルトでは、PulseAudioは44.1 kHzまたは48 kHzのデバイスを開きますが、リサンプリングの労力が少なくなります(96 kHzオーディオは通常、デバイスが48 kHzで開かれるようにします。また、デフォルトでS16LEのデバイスを開きます。

現在、2つのオプションがあります。ネイティブ形式でいくつかのファイルを再生したいだけなら、あなたのpaplay --passthrough <file>ために仕事をするべきです。使用するデバイスを指定することもできます。

もう1つのオプションは、PAに96/24をグローバルに使用させることです。/etc/pulse/default.confalternate-sample-rate = 96000default-sample-format=s24-32le)で変更できます。これはされますが、より大きなCPUの使用率につながります。これは少しばかげた状況であり、すべてのデバイスにグローバル構成を適用する必要があります。いつかデバイスごとの構成を追加する予定です。

この後は、mplayerがALSAと通信し、次にALSAがPulseAudioと通信するのではなく、mplayerのPulseAudioバックエンドを使用する必要があります。でそれを行うことができmplayer -ao pulse ...、永続的に設定したい場合は、に追加ao=pulse~/.mplayer/configます。


手伝ってくれてどうもありがとう!pacmd set-default-sinkリストにあるシンクの1つだけを設定できますよねpacmd list-sinks?とにかく、あなたの答えの2番目の部分はその質問の意味をなさないようにします;)したがって、私があなたを正しく理解している場合、Pulseaudioは24ビットと16ビットの動的な切り替えをサポートしていませんか?私のを変更した後default.confも、mplayerはすべてを16ビットにリサンプリングしてからパルスするように渡します(ここを参照)。これはCLが原因です。彼の答えで説明していますか?
tmnt 2013年

ああ、paplay私のオーディオファイルが気に入らないようです:) 24ビットファイルを再生すると、segfaultが発生Code should not be reached at pulsecore/sndfile-util.c:391, function pa_sndfile_readf_function(). Aborting.し、32ビットファイルを再生するとPulseaudioがクラッシュします
tmnt 2013年

4

13.10へのアップデート後、PulseaudioはデフォルトでHDMIになりました。おそらく、ミニディスプレイポートを介してラップトップ(Lenovo T430S)に追加のモニターが接続されているためです。archlinuxのウェブサイトには、リセットするために甘いと短い答えを提供するか、またはデフォルトを設定します。

  • ログインしてデフォルトの出力をアナログに変更する

  • 走る

    $ aplay -l

そして、アナログがカード0であることを見つけます

  • 走る

    $ pacmdリスト

そして行を見つけます:

active profile: <output:analog-stereo+input:analog-stereo>

「output:analog-stereo + input:analog-stereo」は私のプロファイル名なので、追加

set-card-profile 0 output:analog-stereo+input:analog-stereo

/etc/pulse/default.paに保存します

  • PulseAudioを再起動する

2

アプリケーションとPulseAudio間のインターフェースで使用されるサンプル形式は、PulseAudioがハードウェアデバイスにアクセスするために使用するサンプル形式と常に直接関連しているとは限りません。

S24_3LEaplay出力に示されているように)PulseAudioがサポートするアプリケーション形式の1つではありません。そのような異常な形式のアプリケーションをPulseAudioで実行できるようにするには、デフォルトのPCMデバイスが必要な場合に自動形式変換を行うプラグインを追加します.asoundrc

pcm.!default {
    type linear
    slave.pcm pulse
}

あなたの助けをありがとう、しかし、これは何も変更しなかったと思います。これをmyに追加した後.asoundrcmplayerも、オーディオを16ビットにダウンサンプリングし(つまり、出力は私の質問に投稿されたものと同じように見えます)、/proc/asound/card1/stream0依然として間違ったaltsetが使用されていることを示しています。それが実際にPAでサポートされている形式の問題であるmplayer場合は、ALSAデバイスを指定している場合でも、Pulseaudioを使用しているため、オーディオをダウンサンプリングしないでください。
tmnt 2013年

aplay今は機能しますか?これはのバグのようmplayerです。
CL。

いいえ、aplay同じ出力でまだ失敗します。で設定することdefault-sample-format = s24-32leで、.pulse/daemon.confPAが正しい出力デバイスを使用するように強制できることに気づきました。ただし、mplayerそれでもオーディオをリサンプルしaplay、24ビットオーディオファイルを再生しようとすると失敗するため、これも役に立たないと思います。
tmnt 2013年

2

USB経由で接続したFiio E17でLubuntu Trusty Tahrを使用していることを知っただけの簡単な回避策:ビットレートについても疑問に思っていたので、この投稿をここで見つけました。しかし、私はかなり古いネットブックで音楽を聴くので、デフォルトでそれを96/24に設定したくありませんでした(cpuは最速ではありません)。しかし、私にとってうまくいったのは、VLCを使用し、エキスパートオーディオ設定で指定することでした。出力にALSAモジュールを使用し、次の出力デバイスを使用する場合:「Fiio USB DAC-E17、USB Audio Directハードウェアデバイス(変換なし)」

このようにして、必要に応じてUSB経由で96/24サウンドをFiioに出力することができ(Fiioの小さな画面にも表示されます)、OSでより根本的なものを変更する必要がありませんでした。大胆なプレイヤーやブラウザは、デフォルトのpulseaudio出力を使用します。時々、VLCはデバイスが既に使用されていると言います-次に、例えばPulseaudio出力を使用している大胆なような他のソフトウェアを閉じるだけで動作します。

よろしく、アンディ



1

この質問に対する正しい答えは次のとおりです。

ArchWikiから

使用するALSAハードウェアデバイスを決定します。次に、これをdefault.paファイルに追加します。(デバイスに合わせて0,0を変更します。)

load-module module-alsa-sink device=hw:0,0

1

追加load-module module-alsa-source device=hw:1,0することは/etc/pulse/default.pa正しいアプローチです。ただし、デバイスの競合(initialization failed発生したエラー)を回避するには、次のモジュールをアンロードする必要があります。

  • module-udev-detect
  • モジュール検出

あなたの注意深く見て、/etc/pulse/default.paそれらのモジュールを含む行を削除してください。また、この場合、デバイスは自動的に検出されないためmodule-alsa-sink、シンクも手動で指定するためにロードする必要があります。


キャプチャ(ソース)デバイスのみを手動でロードすると、競合検出再生(シンク)が発生しますか?
ルーカス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.