web-dev-qa-db-ja.com

オーディオストリームの音量を調整するたびにクリック音が聞こえる

(ほぼ)オーディオストリームの音量を調整すると、クリック音が聞こえます。

複数のストリームを出力し、そのボリュームを頻繁に調整するWebアプリケーションを使用していました(そして、これを行うことができるはずです)。 (このアプリケーションは、現象が発生しないようにストリームの処理方法を変更しました;問題は、ストリームを手動で調整することで再現でき、他のアプリケーションにとって興味深い場合があります。)

これを防ぐ既知の方法はありますか?

さらなる観察:

  • これは、ストリームのボリュームを手動で調整したときにも発生します(pavucontrolを使用)。特に、これは他のアプリケーション(ogg123など)からのストリームでも機能するため、アプリケーションの問題ではないようです。

  • pavucontrol ’splaybackタブのストリームだけで、出力デバイス全体の音量を変更しても、これは起こりません。

  • クリックの強さは、それぞれのオーディオストリームで現在再生されているサウンドの音量に依存します。単調な音で最もよく聞こえます。この現象は、少なくとも1つの他のオーディオストリームが再生される場合にも顕著です。

  • この現象は、わずかな音量の変化でも見られます。

  • これは、以下で説明されている問題とは異なります。 音量を調整するときに「ポップ」サウンドを無効にするにはどうすればよいですか? サウンドは/usr/share/sounds/freedesktop/stereo/audio-volume-change.ogaと明確に区​​別されます。

  • 私は、過去数ヶ月の更新によって状況が改善されたように感じていますが、問題を完全には取り除いていません。これは、私が信頼できない検出器であることにも起因する可能性があります。

  • この問題は14.04で初めて発生しました。 16.04でも持続します。

  • これは複数のマシンで発生するため、これはハードウェアの問題ではないと考えています。ただし、どちらもIntelデバイスです。 Sudo lshw -C multimediaの出力は次のとおりです。

    最初のマシン:

    description: Audio device
    product: 7 Series/C210 Series Chipset Family High Definition Audio Controller
    vendor: Intel Corporation
    physical id: 1b
    bus info: pci@0000:00:1b.0
    version: 04
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: driver=snd_hda_intel latency=0
    resources: irq:28 memory:f2530000-f2533fff
    

    セカンドマシン

    description: Audio device
    product: 82801JI (ICH10 Family) HD Audio Controller
    vendor: Intel Corporation
    physical id: 1b
    bus info: pci@0000:00:1b.0
    version: 00
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: driver=snd_hda_intel latency=0
    resources: irq:32 memory:f9ff8000-f9ffbfff
    
13
Wrzlprmft

Pulseが「ビジー」の場合、ハードウェアのレイテンシー制限に達している可能性があります。

configuration: driver=snd_hda_intel latency=0

レイテンシーゼロのようなものは本当にありません。これはサブミリ秒を意味すると思います。

このあたり https://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/ アプリを起動する前にenv変数Pulse_LATENCY_MSEC = 10を設定します。これにより、ストリームのミキシングを行うための作業が増える場合、ソフトウェアに10msのバッファ時間が与えられます。

ライブミュージックのデジタル楽器や非常に高速なゲームをプレイしている場合を除き、10msはまだ十分に低いレイテンシーです。

2
teknopaul