特定のカードに対してalsa pcm.dmix.rateを設定しますか?

特定のカードに対してalsa pcm.dmix.rateを設定しますか?

みんな。自分の物理的な場所によっては、システムに存在する場合と存在しない可能性がある外部USBサウンドカードがあります。以前は、このカードをデフォルトで使用していたため、次の設定が正しく機能していました。

defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.dmix.rate 176400
defaults.pcm.dmix.format S32_LE
defaults.timer.card 1

ただし、そのカードがまったくない可能性があるため、これをデフォルトとして定義することはもう機能しません。pcm.dmix.rate内蔵カード0(何でも)のカード固有のpcm.dmix.formatライフシステムデフォルトを再定義する必要があります。

簡単な検索をしましたが、仮想PCMS魔女を定義する例だけが見つかりましたが、これは私が探しているものではありません。

aplay -l 出力:

card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/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
card 1: Pro [DX3 Pro], device 0: USB Audio [USB Audio] <- optional card of interest
  Subdevices: 0/1
  Subdevice #0: subdevice #0

以下は、正しいサンプルレートとフォーマットを使用して完全に機能するdmix「デバイス」で構成された外部カードです。

pcm.dx3proDM {
    type dmix
    ipc_key_add_uid true
    ipc_key 2048 # mandatory, mast be unique
    ipc_perm 0660
    ipc_gid audio
    slave {
        pcm "hw:1"
        rate 176400
        format "S32_LE"
        channels 2
        period_time 0
        period_size 1024
        buffer_size 8192 # mandatory parameter
    }
    bindings {
        0 0
        1 1
    }
}

問題は、システムでdx3proDMを使用できないことです(たとえば、Audcousではiiを出力デバイスとして選択できない)。

これを指すようにデフォルト値を再定義する必要があります。

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

もう一度デフォルトに設定 - 私が望むものとは正反対です。

ここにアイデアがありますか?

ベストアンサー1

まだ問題を理解していない可能性がありますが、Webカメラを次のように設定します。

pcm.webcam {
  type plug
  slave {
    pcm "front:U0x46d0x809"
    rate 48000
    format "S16_LE"
  }
}

を使用する代わりに必要な名前を使用し、この方法で必要なaplay -Lパラメータを設定するなど、オプションの外部カードをこのように設定できない理由はありますか?plugdefaults

設定カードを具体的に作成し、webcam必要に応じてプラグインを出力として手動で選択した場合defaults


問題は、システムでdx3proDMを使用できないことです(たとえば、Audcousではiiを出力デバイスとして選択できない)。

完全に利用できますが(同様のことを試してみてくださいaplay -D dx3proDM some_file.wav)、一部のアプリではプラグインを一覧表示せずにデバイス名を入力できません。これはALSAではなくアプリケーションの制限です。

それでもそれを指すようにデフォルト値を再定義する必要があります[...]

udev次に、(1)スクリプトを使用して変更するか、(2)Pulseaudioを使用してすぐに機能させる方法に戻ります。

おすすめ記事