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

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

我正在尝试将音频信号从 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 环回设备。您可以编译它以将音频输出到管道或标准输出。

相关内容