Virtual audio devices for amateur radio with pipewire
Choosing the right audio interface can be cumbersome and prone to error.
Creating special devices can help to find the right audio source/sink and
prevent e. g. sending “ding” sounds over the air.
Pipewire config#
Fortunately pipewire can help and is available in many Linux distributions.
When you have pipewire up and running, create a file
~/.config/pipewire/pipewire.conf.d/10-TRX-sink.conf
with the following
content:
context.objects = [
{
factory = adapter
args = {
factory.name = support.null-audio-sink
node.name = "toTRX"
object.linger = true
}
},
{
factory = adapter
args = {
factory.name = support.null-audio-sink
node.name = "fromTRX"
object.linger = true
}
}
]
Reload pipewire (may differ for your system) with
$ systemctl --user restart pipewire.service
or logout/login or reboot.
Now there should be additional devices visible in pavucontrol
(maybe you
have to select “All Output Devices” at “Show”):
- On Tab “Output Devices”: “toTRX” and “fromTRX”
- On Tab “Input Devices”: “Monitor of toTRX” and “Monitor of fromTRX”
Audio routing#
Route to TRX#
After that connect the audio devices of your TRX to the new devices. Here is an example with wfview, which I use with an IC-705:
- Settings -> Radio Access -> “Audio Output”: “fromTRX”
- Settings -> Radio Access -> “Audio Input”: “toTRX.monitor”
Route to Software#
Here is an example for WSJT-X:
- File -> Settings -> Audio -> Soundcard -> “Input”: “fromTRX.monitor” “Mono”
- File -> Settings -> Audio -> Soundcard -> “Output”: “toTRX” “Both”
CAT control with rigctld over USB or wfview over network is described at Unified CAT control and automatization with systemd for amateur radio