PuredataでAlsaループバックデバイスを操作する方法

PuredataでAlsaループバックデバイスを操作する方法

Airplayソース(Shairport-syncを使用)からPuredataにオーディオ信号をルーティングしようとしています。このために、Alsaでループバックデバイスを作成しました。次に、この仮想デバイスを次のようにShaiportの出力に設定します(hw:2はループバックデバイスです)。

shairplay-sync -a -Airplay -- -d hw:2

ただし、ループバックデバイスをPuredataへの入力に設定しようとすると、次のメッセージが表示されます。

audio I/O stuck... closing audio

この問題が私の.asoundrcファイルで発生するかどうか疑問に思います。ここにいる:

# playback PCM device: using loopback subdevice 0,0
pcm.amix {
  type dmix
  ipc_key 219345
  slave {
  pcm "hw:Loopback,0,0"
  period_size 1024
        buffer_size 2048
        rate 44100
  }
}

# capture PCM device: using loopback subdevice 0,1
pcm.asnoop {
  type dsnoop
  ipc_key 219346
  slave.pcm "hw:Loopback,0,1"
}

# duplex device combining our PCM devices defined above
pcm.aduplex {
  type asym
  playback.pcm "amix"
  capture.pcm "asnoop"
}

# ------------------------------------------------------
# for jack alsa_in and alsa_out: looped-back signal at other ends
pcm.ploop {
  type plug
  slave.pcm "hw:Loopback,1,1"
}

pcm.cloop {
  type dsnoop
  ipc_key 219348
  slave {
  pcm "hw:Loopback,1,0"
  period_size 1024
        buffer_size 2048
        rate 44100
  }
}

# ------------------------------------------------------
# default device

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

書式設定やその他の項目を追加する必要がありますか?

ちなみに、ループバックデバイスはジャックオーディオとうまく機能します。それも純粋なデータだ。 Jackがリソースを使いすぎているようで、使いたくありません。 (Jack、Puredata、およびループバックデバイスを連携させることはできず、毎回クラッシュします...)

ご協力ありがとうございます!

答え1

ちなみに、Shairport SyncはALSAループバックデバイスなしでオーディオソースを直接提供できるようになりました。オーディオをパイプまたは標準出力に出力するようにコンパイルできます。

関連情報