I am creating a program in Java and I need to stream internal audio using a TargetDataLine (audio source). I am trying to use pw-loopback
to create a virtual audio source that receives data from speakers but I can't get it to work..
I have looked at: tldr pw-loopback docs for examples..
I cannot access pactl
and I would like to implement this using Pipewire only.
What commands can I use to create a pipewire audio source that mirrors a default sink?
I have tried the following commands:
pw-loopback -m '[FL FR]' --capture-props='media.class=Audio/Source'
and:
pw-loopback -m '[FL FR]' --capture-props='media.class=Audio/Sink' --playback-props=media.class=Audio/Source
I also tried using pw-link
but only got failed to link ports: No such file or directory
:
pw-loopback -m '[FL FR]' --capture-props='media.class=Audio/Sink' -n cliradio-sink &
pw-loopback -m '[FL FR]' --capture-props='media.class=Audio/Source' -n cliradio-source &
pw-link cliradio-sink:monitor cliradio-source:playback
Any help is greatly appreciated!
This can be accomplished if the flag stream.capture.sink=true
is passed into capture-props:
pw-loopback --capture-props='{ stream.capture.sink=true }' -C alsa_output.pci-0000_00_1f.3.analog-stereo -m '[FL FR]' --playback-props='media.class=Audio/Source audio.position=[FL FR]' -n my-virtual-source