パルス/ALSA で歪んだオーディオ、JACK で正常に動作します。JACK が正しく動作する理由を分析し、その知識を使用して pulse/alsa 構成を修正するにはどうすればよいですか?

ジェシカ・ノワク

この問題をテストして解決するために、Fedora 33 の新規インストールを使用しています。オーディオ設定または構成ファイルは変更されていません。

デフォルトでは、オーディオは大きく歪んでいます (再生されているものを特定すること可能ですが、全体としては使用できません)。

ただし、インストールして起動jackdし、次の設定で実行したままにすると、次のようになります。

jackd -r -dalsa -dhw:0 -r48000 -p256 -n2

次に、mpv(JACK を使用できる)オーディオ ファイルを試してみると、サウンドは鮮明でクリアで、意図したとおり動作します。

mpv --ao=jack test.flac

注:jackd-r44100あまりにも動作します。

もちろん、これは満足のいく一般的なアプローチではありません。なぜなら、すべてのソフトウェアが JACK を単独で使用できるわけではないため、たとえば、Firefox では機能しないからです。

JACK は適切に処理できるので、pulse または alsa (自動) の設定が問題を引き起こしているのではないでしょうか? または、それは他の何かである可能性がありますか?

要するに、ALSA構成(またはその点についてはpulseaudio)を使用してJACKが行うことをどのように複製できますか。この回答をパルスなしでも機能させるには、ALSA による解決策が望ましいでしょうもちろん、pulseuadioが問題の原因である可能性もありますが、わかりません。


追加情報:

  • の出力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
暗い

なるほど、sox を使って自分でファイルを変換してみました。その後、私が得たのは次のエラーでした: Playing WAVE 'CONVERTED-test.wav' : Signed 32 bit Little Endian, Rate 44100 Hz, Stereo aplay: set_params:1349: Channels count not available. sox コマンドでチャンネル 18 を使用すると、最終的に aplay がファイルを適切に再生し、クリアになります。注: チャンネル 10 の sox を使用してファイルを変換すると、ファイルは aplay でも再生されますが、その場合、ファイルは再び歪んでしまいます。その他のチャネル数を使用すると、チャネル数が使用不可エラーになります。

そのため、10 チャンネルのインターフェースにはドライバーまたは他の場所にバグがあるように見えます。18 チャンネルのインターフェースを使用するように Pulseaudio を説得する必要があります。

見てみると、モジュールのalsa-シンク、あなたはそれをALSAデバイスを置くことができます。

これは、おそらく で構成を行う必要があることを意味します~/.asoundrc

hw プラグインでチャンネル数を設定しますが、私自身はこれを行ったことはなく、これらのチャンネルを選択できるハードウェアもありません。

したがって、これにはさまざまな構成ファイルを使った実験が必要になると思います。これはリモートで行うのは難しいため、段階的な手順を説明することはできません。

別のオプションは、ALSA トラッカーにバグレポートを提出することです。彼らは、ドライバーの問題を見つけたり (汎用 USB ドライバーの場合は、おそらく癖が必要です)、構成ファイルがどのように見えるかについてアドバイスをくれるかもしれません。

ALSA バグ追跡はここで説明されています

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ