最近、外部サウンドカード/ 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はサウンド設定にFiioデバイス/シンクを1つしか表示しないため、PulseaudioにALSAデバイスhw:1,0
を使用するよう指示する方法がわかりません。 load-module module-alsa-source device=hw:1,0
を/etc/Pulse/default.pa
に追加すると、Pulseaudioは起動時にmodule.c: Failed to load module "module-alsa-source" (argument: "device=hw:1,0"): initialization failed.
で中断します。
だから、それは序論です、ここに私の実際の質問があります:
いくつかの(うまくいけば役立つ)デバッグ情報:
aplay -L
の出力aplay -l
の出力pacmd list-sinks
の出力2つの質問に答える:
GNOMEボリュームコントロール、pavucontrolなどのGUIを使用して、またはpacmd set-default-sink
を使用してコマンドラインからPulseAudioのデフォルトデバイスを選択できます。
デフォルトでは、PulseAudioはデバイスを44.1 kHzまたは48 kHzのいずれかで開きますが、どちらでもリサンプリングの労力が低くなります(したがって、通常96 kHzオーディオでは48 kHzでデバイスが開かれます。また、デフォルトでS16LEのデバイスを開きます。
現在、2つのオプションがあります。いくつかのファイルをネイティブ形式で再生したいだけなら、paplay --passthrough <file>
があなたのために仕事をするはずです。使用するデバイスを指定することもできます。
もう1つのオプションは、PAで96/24をグローバルに使用することです。 /etc/Pulse/default.conf
(alternate-sample-rate = 96000
、default-sample-format=s24-32le
)で変更できます。ただし、これはwillによりCPU使用量が増加します。これは少しばかげた状況で、すべてのデバイスにグローバル構成を適用する必要があります。ある時点で、デバイスごとの構成を追加する予定です。
この後、mplayerをALSAに、次にALSAをPulseAudioに話すのではなく、mplayerのPulseAudioバックエンドを使用する必要があります。 mplayer -ao Pulse ...
でそれを行うことができます。永続的に設定する場合は、ao=Pulse
を~/.mplayer/config
に追加します。
13.10へのアップデート後、PulseaudioがデフォルトでHDMIになりました。おそらく、ミニディスプレイポートを介してラップトップ(Lenovo T430S)に追加のモニターが接続されているためです。 archlinux Webサイト は、デフォルトをリセットまたは設定するための簡潔で短い回答を提供しました。
ログインし、デフォルトの出力をアナログに変更します
走る
$ 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の間のインターフェイスで使用されるサンプル形式は、PulseAudioがハードウェアデバイスへのアクセスに使用するサンプル形式と常に直接関連しているわけではありません。
S24_3LE
は、PulseAudioがサポートするアプリケーション形式の1つではありません(aplay
出力に示されています)。このような異常な形式のアプリケーションをPulseAudioで実行できるようにするには、.asoundrc
にデフォルトのPCMデバイスが必要な場合に自動形式変換を行うプラグインを追加します。
pcm.!default {
type linear
slave.pcm Pulse
}
ちょっとした回避策として、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出力、そしてそれは動作するはずです。
よろしく、アンディ
この質問に対する正しい答えは次のとおりです。
から ArchWiki
使用するALSA hwデバイスを決定します。次に、これをdefault.paファイルに追加します。 (デバイスに合わせて0,0を変更します。)
load-module module-alsa-sink device=hw:0,0
load-module module-alsa-source device=hw:1,0
を/etc/Pulse/default.pa
に追加するのが正しいアプローチです。ただし、デバイスの競合を回避するには、次のモジュールをアンロードする必要があります(initialization failed
エラー)。
/etc/Pulse/default.pa
を注意深く見て、それらのモジュールを含む行を削除してください。また、この場合、デバイスは自動的に検出できないため、module-alsa-sink
をロードして、シンクも手動で指定する必要があります。