No More Resampling
arodland
released this
16 Nov 00:38
·
21 commits
to master
since this release
This release changes from using PulseAudio's module-null-sink
for TX and RX audio to using module-pipe-sink
for TX and module-pipe-source
for RX. This has some advantages, namely:
- The
[INTERNAL] Flex RX Loopback
and[INTERNAL] Flex TX Loopback
devices, which used to be necessary, no longer exist and no longer clutter up your audio device selection. - nDAX is no longer in charge of synchronizing clock domains between the rate that audio samples arrive from the rig and the rate that PulseAudio consumes samples from the null-sink and makes them available to the monitor device.
- Several hundred lines of code were removed, including the resampler PLL algorithm (which was complicated, received many tweaks, and was never quite right).
- CPU usage is lower as nDAX no longer does floating-point math on each block of samples.
- Users of SSTV and MFSK image modes should notice less "wobbling" in received images.
A few small configuration changes may be necessary upon upgrading to this release:
- The
-source
and-sink
option names have swapped places. They were originally (questionably) named from nDAX's perspective based on the loopback devices, instead of the user's perspective. Now there is only one perspective. If you are using the defaultflexdax.rx
andflexdax.tx
you don't have to change anything, but if you are starting nDAX with a script you will have to adjust your options. I felt it was better to break things a little bit now than to keep the confusing names forever. - The source device for received audio is no longer forced to have
.monitor
at the end — e.g. the default PulseAudio source will now beflexdax.rx
, notflexdax.rx.monitor
. You will likely have to re-select your audio source in wsjt-x etc., since the remembered source name won't exist anymore. - The
-debug-timing
option has been removed since it controlled something that no longer exists. - The
-latency
option probably doesn't do anything anymore — your apps are now in charge of the size of their own audio buffers. This is generally a good thing. The option is retained in case tweaking the source-side buffer size is useful for debugging, but you are recommended to leave it at the default.
Thanks for coping with these changes and as always please report any problems using the Issues tab.