Apenas FYI, o Shairport Sync agora pode fornecer o feed de áudio diretamente, sem a necessidade de um dispositivo de loopback do ALSA. Você pode compilá-lo para enviar o áudio para um tubo ou stdout.
Estou tentando rotear um sinal de áudio de uma fonte do Airplay (com Shairport-sync) para Puredata. Para fazer isso, criei um dispositivo de loopback no Alsa. Então eu configurei este dispositivo virtual como saída do Shairport assim (hw: 2 é o dispositivo de loopback):
shairplay-sync -a -Airplay -- -d hw:2
Mas quando tento definir o dispositivo de loopback como entrada do Puredata, recebo a seguinte mensagem:
audio I/O stuck... closing audio
Eu queria saber se esse problema poderia vir do meu arquivo .asoundrc? Aqui está:
# 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"
}
Devo adicionar coisas sobre formato ou qualquer outra coisa?
FYI, o dispositivo Loopback funciona bem quando usado com áudio de entrada. Dados puros também. Eu gostaria de não usar o Jack porque parece que ele usa muito recursos (eu não era capaz de fazer o Jack, o Puredata e o dispositivo de loopback funcionarem juntos, ele trava a cada vez ...)
Obrigado pela ajuda!
Apenas FYI, o Shairport Sync agora pode fornecer o feed de áudio diretamente, sem a necessidade de um dispositivo de loopback do ALSA. Você pode compilá-lo para enviar o áudio para um tubo ou stdout.