如何使 Alsa Loopback 设备在 Puredata 中工作

Cor*_*ulf 5 alsa audio

我正在尝试将来自 Airplay 源(使用 Shairport-sync)的音频信号路由到 Puredata。为此,我在 Alsa 中创建了一个环回设备。然后我像这样将此虚拟设备设置为 Shairport 的输出(hw:2 是环回设备):

shairplay-sync -a -Airplay -- -d hw:2
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将回送设备设置为 Puredata 的输入时,我收到以下消息:

audio I/O stuck... closing audio
Run Code Online (Sandbox Code Playgroud)

我想知道这个问题是否可能来自我的 .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"
}
Run Code Online (Sandbox Code Playgroud)

我应该添加有关格式或其他内容的内容吗?

仅供参考,环回设备与插孔音频一起使用时效果很好。纯数据也是。我不想使用 Jack,因为它看起来使用了太多资源(我无法让 Jack、Puredata 和环回设备一起工作,它每次都崩溃......)

感谢您的帮助!

小智 0

仅供参考,Shairport Sync 现在可以直接为您提供音频源,无需 ALSA 环回设备。您可以编译它以将音频输出到管道或标准输出。