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 루프백 장치 없이도 오디오 소스를 직접 제공할 수 있습니다. 오디오를 파이프 또는 표준 출력으로 출력하도록 컴파일할 수 있습니다.

관련 정보