読者です 読者をやめる 読者になる 読者になる

cocuh's note

type(あうとぷっと) -> 駄文

ArchLinuxでHDMIとスピーカーで同時に音を鳴らす

Arch Linux Linux

MacBookのminidisplayからHDMIへの変換ケーブルを買ったので、ArchからHDMIを再生してbattleしようと思ったら何もせずに写ってしまいしょぼくれていると、音がならないことに気づいて直したかんじです。

最初に

$ aplay -L
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CS4206 Analog [CS4206 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

で音のカードを調べる

カード0の3,7,8がHDMIであることがわかる

ためす

$ aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav
$ aplay -D plughw:0,7 /usr/share/sounds/alsa/Front_Center.wav
$ aplay -D plughw:0,8 /usr/share/sounds/alsa/Front_Center.wav

で試して動いたデバイスを記憶(私は3

.asoundrcを書く

とりあえず音を鳴らすだけであれば愚直に

pcm.!default {
  type hw
  card 0
  device 3
}

でよい

モニターとMacbook上のスピーカで同時に鳴らしたいとき

ふぉーらむを参考にこう書くとできた

http://www.avsforum.com/t/1269302/simultaneous-multiple-outputs-with-alsa

pcm.!default{
    type plug
    slave {
        pcm multi
    }
    ttable.0.0 1.0
    ttable.1.1 1.0
    ttable.0.2 1.0
    ttable.1.3 1.0
}

pcm.multi {
    type multi
    slaves.a.pcm "hw:0,0"
    slaves.a.channels 2
    slaves.b.pcm "hw:0,3"
    slaves.b.channels 2
    bindings.0.slave a
    bindings.0.channel 0
    bindings.1.slave a
    bindings.1.channel 1
    bindings.2.slave b
    bindings.2.channel 0
    bindings.3.slave b
    bindings.3.channel 1
}

問題点

HDMIのほうの音量だけalsa mixerで音量をコントロールできないです。
alsa周りを理解してないので、たぶんそこら辺ですが、全部ミュートにしてもできないです。
ちなみに、cmusでテストしたときにcmusの音量を0にしても鳴ったのでなんでだろうなと疑問に思いつつお布団に入りました。