ALSA Loopback for Fun and Profit

So I finally got the ALSA loopback working with gstreamer. Key is to use ALSA's plugs to get the right format on both sides of the capture:

{% for spk in cards %}
pcm.spk{{spk}} {
  type plug
  slave{
    pcm "hw:Loopback{{spk}},0,0"
    rate 48000
    format S16_LE
  }
}
pcm.monitor{{spk}}_snoop {
  type dsnoop
  ipc_key 68659{{spk}}
  slave{
    pcm "hw:Loopback{{spk}},1,0"
    format S16_LE
  }
}
pcm.monitor{{spk}} {
    type plug 
    slave.pcm "monitor{{spk}}_snoop"
}
{% endfor %}

pcm.!default {
 @func getenv
 vars [ DISPLAY_ALSA_DEVICE ]
 default spk1
}

And then the only wrinkle left is that you really want to use:

alsasrc device=monitor0 slave-method=skew

(or slave-method=resample) in your gstreamer pipeline. With that I can happily play ALSA-only programs and pick them up with gstreamer.

Comments

Comments are closed.

Pingbacks

Pingbacks are closed.