ALSA の .asoundrc ファイルがプラグ タイプではなくハードウェア タイプを使用すると、歪んだ音やパチパチという音が発生します。

ALSA の .asoundrc ファイルがプラグ タイプではなくハードウェア タイプを使用すると、歪んだ音やパチパチという音が発生します。

私は、Ubuntu 14.04とKodi 14.1を実行しているHTPCにXBMCbuntuをインストールしています。私は、ゲーム用PCからゲームをストリーミングできるようにSteamをインストールして実行しようとしています。このガイドPulseAudio ではまったく音が出ず、ALSA と PA を切り替える際のプレ スクリプトとポスト スクリプトが機能しなかったため、ALSA のみを使用しました。

~/.asoundrc が次のようになっている場合、Kodi のオーディオは正常に動作します。

pcm.dsp {
    type plug
    slave.pcm "dmixer"
}

pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}

pcm.!default {
    type plug
    slave.pcm "dmixer"
}

ctl.!default {
    type plug
    slave.pcm "dmixer"
}

pcm.dmixer {
    type dmix
    ipc_key 101
    slave {
        pcm "hw:0,3"
        period_time 0
        period_size 1024
        buffer_size 4096
        rate 48000
    }
    bindings {
        0  0
        1  1
    }
 }

しかし、メニューからSteamを起動すると、音声が歪んで割れ、全体的に途切れていますが、音は出ていて認識できます。少し実験して試行錯誤した結果、

ctl.!default {
    type hw
    card 0
}

Kodiでも同じように壊れた音が出ます。そして

ctl.!default {
    type plug
    slave.pcm "hdmi:CARD=HDMI,DEV=0"
}

適切なサウンドが得られます。dmix デバイスで「プラグ」デバイスを使用しようとしましたが、まったくサウンドが得られず、さらに調査したところ、機能しないことがわかりました。dmix デバイスで「プラグ」デバイスを使用できないため、同じ「プラグ」デバイスを dmix で使用できるソリューションが必要です。または何らかの方法で「hw」デバイスを修正してください。以下に、私の aplay -l と aplay -L があります。また、aplay -l にカード 0 のデバイス 0 がリストされていないため、「hdmi:CARD=HDMI,DEV=0」がどこから来るのか、少し混乱しています。aplay -L では表示されますが、他のすべての PCM は aplay -l のデバイスから来ています。さらに、HDMI を使用してテレビとレシーバーに接続しており、ALC1150 デバイスを使用すると、Kodi のシステム オプションでも ~/.asoundrc でも機能しません。

$aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1150 Analog [ALC1150 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1150 Digital [ALC1150 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
dsp
dsp0
default
dmixer
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
dmix:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Direct sample mixing device
dsnoop:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Direct sample snooping device
hw:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Direct hardware device without any conversions
plughw:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Hardware device with all software conversions
sysdefault:CARD=Generic
    HD-Audio Generic, ALC1150 Analog
    Default Audio Device
front:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Front speakers
surround40:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Digital
    IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Direct sample mixing device
dmix:CARD=Generic,DEV=1
    HD-Audio Generic, ALC1150 Digital
    Direct sample mixing device
dsnoop:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Direct sample snooping device
dsnoop:CARD=Generic,DEV=1
    HD-Audio Generic, ALC1150 Digital
    Direct sample snooping device
hw:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Direct hardware device without any conversions
hw:CARD=Generic,DEV=1
    HD-Audio Generic, ALC1150 Digital
    Direct hardware device without any conversions
plughw:CARD=Generic,DEV=0
    HD-Audio Generic, ALC1150 Analog
    Hardware device with all software conversions
plughw:CARD=Generic,DEV=1
    HD-Audio Generic, ALC1150 Digital
    Hardware device with all software conversions

答え1

以下のバグレポートに回避策が記載されています。基本的には、モジュール オプションを追加し、amixer スクリプトを使用してデジタル デバイスのミュート/ミュート解除を行うことになります。

少なくとも、バグをサブスクライブして、それが自分に影響することを示す必要があります。

https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361

関連情報