[pulseaudio-discuss] Recipe: recording sound card input and output

Chris Keller xylo04 at gmail.com
Fri Oct 15 16:07:19 UTC 2021


Joel,

In this particular case I'm working on integrating the VARA-FM digital mode
into the Pat <https://getpat.io/> Winlink client. However, I'm excited that
this approach will work for other similar use cases. With just a little
more work, I can feed pre-recorded audio into decoder/modem programs for
automated tests! This was already possible in some modem programs (e.g.
WSJT-X) that had built in such functionality, but doing it through
PulseAudio makes the approach repeatable for pretty much any software modem!

Chris

On Fri, Oct 15, 2021 at 4:20 AM Joel <jm-hotmail at hotmail.com> wrote:

> Chris -
>
> Are you operating an SDR rig or one of the digital modes (e.g., JTx, FTx,
> etc.)?
>
> Joel W2TQ
>
> 973 736 8306
> ------------------------------
> *From:* pulseaudio-discuss <
> pulseaudio-discuss-bounces at lists.freedesktop.org> on behalf of Chris
> Keller <xylo04 at gmail.com>
> *Sent:* Thursday, October 14, 2021 9:25 PM
> *To:* pulseaudio-discuss at lists.freedesktop.org <
> pulseaudio-discuss at lists.freedesktop.org>
> *Subject:* [pulseaudio-discuss] Recipe: recording sound card input and
> output
>
> Hi folks,
>
> I just spent a while figuring out how to solve a particular need and want
> to save it in the mailing list for posterity.
>
> I'm an amateur radio operator, and we make extensive use of external sound
> cards for interfacing computers with radios for digital communication
> modes. I was experiencing a problem where I really wanted to record
> received audio (RX) to the left channel of a file, and transmitted audio
> (TX) to the right channel. Doing so would let me hear exactly what the
> modem program heard and sent.
>
> After much fussing, I found an arrangement that worked: set up a null-sink
> to represent the rx-tx stream I wanted, then use two loopbacks, one each
> for RX and TX. Once that was set up, recording the file was simple.
>
> # BurrBrown chipset used in SignaLink USB
> SOUND_CARD="BurrBrown"
> RADIO_RX=$(pacmd list-sources | egrep "input.*$SOUND_CARD" | grep -oP
> "<\K[^ >]+")
> RADIO_TX=$(pacmd list-sources | egrep "output.*$SOUND_CARD.*monitor" |
> grep -oP "<\K[^ >]+")
> pactl load-module module-null-sink sink_name=rxtx
> sink_properties=device.description=RXTX
> pactl load-module module-loopback source=$RADIO_RX sink=rxtx channels=1
> channel_map=left
> pactl load-module module-loopback source=$RADIO_TX sink=rxtx channels=1
> channel_map=right
>
> [image: Radio Interface Source_Sink.jpg]
>
> Hopefully this will help someone in the future looking to record both the
> input and output to a sound card!
>
> Chris Keller, K0SWE
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20211015/3b7da3c3/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Radio Interface Source_Sink.jpg
Type: image/jpeg
Size: 23449 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20211015/3b7da3c3/attachment-0001.jpg>


More information about the pulseaudio-discuss mailing list