この問題をテストして解決するために、オーディオ設定やプロファイルを変更せずにFedora 33を新しくインストールしました。
デフォルトでは、オーディオはひどく歪んでいます(はい再生している項目がわかりますが、通常は使用できません。
ところでインストールしてjackd
実行してみると以下のように設定されています。
jackd -r -dalsa -dhw:0 -r48000 -p256 -n2
その後、オーディオファイルmpv
(JACKが利用可能)を試してみると、サウンドは鮮明でクリーンです。期待どおりに動作:
mpv --ao=jack test.flac
注:作品もjackd
あります-r44100
。
もちろん、これは満足のいく普遍的なアプローチではありません。すべてのソフトウェアがJACKのみ使用できるわけではないため、Firefoxでは機能しません。
JACKが問題を正しく処理するため、パルスまたはalsa(自動)設定が問題を引き起こしているようです。それとも違うのでしょうか?
簡単に言うと:ALSA構成(またはパルスオーディオ)を使用してJACKが実行する操作をどのように複製できますか? ALSAによるソリューションは次のとおりです。最初の選択この回答を有効にしてください脈拍なししかも。もちろん、この問題を引き起こすのがパルスオーディオかもしれません。
追加情報:
- 出力
aplay -l
:
**** List of PLAYBACK Hardware Devices ****
card 0: Studio [Audiofuse Studio], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
- 出力
jackd -r -dalsa -dhw:0 -r48000 -p256 -n2
:
jackdmp 1.9.14
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2019 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
no message buffer overruns
no message buffer overruns
no message buffer overruns
JACK server starting in non-realtime mode
self-connect-mode is "Don't restrict self connect requests"
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|256|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
- 出力
aplay --dump-hw-params -D hw:Studio -t raw /dev/zero
:
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:Studio":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE
SUBFORMAT: STD
SAMPLE_BITS: 32
FRAME_BITS: [320 576]
CHANNELS: [10 18]
RATE: [44100 192000]
PERIOD_TIME: [125 297211)
PERIOD_SIZE: [6 13107]
PERIOD_BYTES: [240 524288]
PERIODS: [2 1024]
BUFFER_TIME: (62 594422)
BUFFER_SIZE: [12 26214]
BUFFER_BYTES: [480 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1343: Sample format non available
Available formats:
- S32_LE
- 出力
cat /proc/asound/Studio/stream0
(「再生」のみ):
Playback:
Status: Stop
Interface 1
Altset 1
Format: S32_LE
Channels: 18
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Interface 1
Altset 2
Format: S32_LE
Channels: 18
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Interface 1
Altset 3
Format: S32_LE
Channels: 10
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Channel map: FL FR FC LFE RL RR FLC FRC RC SL
答え1
わかりました。 soxを使って直接ファイル変換を試してみました。これにより、次のエラーが発生します。 WAVE 再生中 'CONVERTED-test.wav': 署名された 32 ビット Little Endian、速度 44100Hz、ステレオ再生: set_params: 1349: チャンネル数は使用できません。チャンネル18とsoxコマンドを使用すると、最終的にファイルが正確かつ明確に再生されます!注:チャンネル10でsoxを使用してファイルを変換すると、ファイルはaplayでも再生されますが、この場合ファイルは再び歪みます。チャンネルに異なる番号があると、チャンネル数が利用できないというエラーが発生します。
したがって、10チャンネルのインターフェースがドライバーや他の場所にバグがあるように見え、Pulseaudioが18チャンネルのインターフェースを使用するように説得する必要があります。
見ているモジュール alsa レシーバー、ALSAデバイスに入れることができます。
これはあなたが必要であることを意味するかもしれません~/.asoundrc
。
チャンネル数を設定できます。ハードウェアプラグインしかし、私はこれを直接試したことがなく、これらのチャンネル選択機能を備えたハードウェアもありません。
したがって、さまざまな設定ファイルを使用していくつかの実験が必要になるようです。これはリモートで実行するのが難しく、ステップバイステップの指示を提供することはできません。
別のオプションは、ALSAトラッカーにバグレポートを送信することです。ドライバで問題を発見したり(通常のUSBドライバの場合は特別な方法が必要な場合があります)、設定ファイルの提案を提供できます。
ALSAのバグ追跡の説明ここ。