Initial setup for using digital modes in Linux
In order to connect digital mode applications to Web Radio Control, you will need to install
a helper application called wrc-proxy
and virtual audio cable driver software.
It is necessary to perform these preparations only once.
After completing these installation instructions, follow the steps in Connecting digital mode applications to Web Radio Control.
Installing wrc-proxy
helper application
-
Download wrc-proxy installation package for your operating system.
-
The
wrc-proxy
application is available for the following operating systems and hardware architectures:-
Linux (PC: Intel x86 64-bit): https://wrc-dist.s3.amazonaws.com/wrc-proxy/wrc-proxy-linux-x86_64-0.12.0.zip
-
Linux (PC: Intel x86 32-bit): https://wrc-dist.s3.amazonaws.com/wrc-proxy/wrc-proxy-linux-x86-0.12.0.zip
-
Linux (ARM32v6 32-bit): https://wrc-dist.s3.amazonaws.com/wrc-proxy/wrc-proxy-linux-arm32v6-0.12.0.zip
-
Linux (ARM32v7 32-bit, such as Raspberry Pi): https://wrc-dist.s3.amazonaws.com/wrc-proxy/wrc-proxy-linux-arm32v7-0.12.0.zip
-
Linux (ARM64v8 64-bit): https://wrc-dist.s3.amazonaws.com/wrc-proxy/wrc-proxy-linux-arm64v8-0.12.0.zip
-
-
-
Extract the downloaded ZIP file to some directory. The zip file contains a single executable application file
wrc-proxy
and an installation scriptinstall-wrc-proxy.sh
. -
Run the installation script
install-wrc-proxy.sh
. Thewrc-proxy
binary will be installed tobin/wrc-proxy
in your home directory.-
If the installation script cannot be run, try to make the script executable by running command-line command:
-
chmod a+x install-wrc-proxy.sh
-
-
Installing a virtual audio cable driver
Most Linux distributions use the PulseAudio sound system for audio recording and playback. PulseAudio makes it easy to add new virtual audio cables, also called loopback devices.
In addition to the basic PulseAudio installation, you will need to install the pavucontrol
application to change audio input and output routing for running applications.
Configuring loopback audio devices
The following example adds two loopback audio devices:
-
radio-output
, which will be the audio output device for the web browser to capture audio from radio -
radio-input
, which will be the audio output device for the digital mode application to capture the audio generated by the application
You can add the loopback devices in PulseAudio using one of the two methods documented below:
It is recomended to permanently create the loopback audio devices (method 1), but if you wish to test loopback audio devices without changing the operating system audio settings permanently, you can follow the instructions to create the device temporarily (method 2). If you use the permanent way to create the loopback audio devices, there will be no need to re-create them, which will make the process of connecting audio devices for digital mode applications faster in the future.
Method 1: creating loopback audio devices permanently
You will need root
user permissions or sudo
permission for changing the operating system configuration files!
Add the following lines to the end of the file /etc/pulse/default.pa
:
# Loopback devices
load-module module-null-sink sink_name=radio-output sink_properties=device.description="radio-output"
load-module module-null-sink sink_name=radio-input sink_properties=device.description="radio-input"
load-module module-loopback source=radio-output.monitor latency_msec=100 adjust_time=0 rate=48000
load-module module-loopback source=radio-input.monitor latency_msec=100 adjust_time=0 rate=48000
You can reduce audio latency by removing extra sample rate conversions when you set the default
sample rate to 48 kHz, which is also the sample rate used by Web Radio Control and the web browser.
You can set the default sample rate by adding the following lines in the file /etc/pulse/daemon.conf
: (optional)
default-sample-format = s16le
default-sample-rate = 48000
alternate-sample-rate = 44100
After making the above changes to the files, restart PulseAudio by executing command pulseaudio -k
in the command line.
You will need to wait for a moment for PulseAudio to start again.
Method 2: creating loopback audio devices temporarily
Execute the following commands in the command line using the pactl
control application:
pactl load-module module-null-sink sink_name=radio-output sink_properties=device.description="radio-output"
pactl load-module module-null-sink sink_name=radio-input sink_properties=device.description="radio-input"
pactl load-module module-loopback source=radio-output.monitor latency_msec=100 adjust_time=0 rate=48000
pactl load-module module-loopback source=radio-input.monitor latency_msec=100 adjust_time=0 rate=48000
Connecting digital mode applications to Web Radio Control
Continue by following instructions on page connecting digital mode applications to Web Radio Control.