Como fazer o dispositivo Loopback Alsa funcionar em Puredata

4

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!

    
por Corentoulf 23.04.2015 / 18:20

1 resposta

0

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.

    
por 17.10.2015 / 14:02

Tags