Thetis and FreeDV important settings to get a good SNR

193 views
Skip to first unread message

Frank Rode

unread,
Nov 13, 2025, 1:31:25 AMNov 13
to digitalvoice

Hello everyone,

I have various transceivers that I use for FreeDV. Flex-6500, IC-705 with amp, and a Hermes Lite 2 with amp. I noticed that with the Hermes Lite 2, when the signal was very good and the QRG was undisturbed, I got a 10dB worse SNR in FreeDV with Thetis under Windows, and there were also synchronization problems at the beginning. This did not happen under Linux in pihpsdr with the same hardware. I then carried out some tests without external influences. I found the cause. It is due to the DSP settings in Thetis. The default setting for the filter type in Digital is Low Latency. It must be changed to Linear Phase.

I would appreciate feedback if anyone else can confirm this.

73 Frank, DL2GRF



Thetis Filtertyp.jpeg

Alan Beard

unread,
Nov 15, 2025, 3:02:42 AMNov 15
to digita...@googlegroups.com
Having run FreeDV mode 700D or 700E for years now on OpenWebRX, do we have a
command line decode script for RADE V1?
8k samples in from the RF DSP, 8k voice audio samples out 
Currently "freedv_rx 700E - -"

And I'll put it on our Men's Shed WebSDR:



--
You received this message because you are subscribed to the Google Groups "digitalvoice" group.
To unsubscribe from this group and stop receiving emails from it, send an email to digitalvoice...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/digitalvoice/0e9bd869-cb7b-4e04-a36e-0f09ff52d5a9n%40googlegroups.com.

ea8ee

unread,
Nov 15, 2025, 3:59:44 AMNov 15
to digita...@googlegroups.com

Mooneer Salem K6AQ:

… there’s also a new receive-only integration available that’s intended for web-based SDRs. Originally intended for ka9q-radio, this is an application that accepts audio samples on standard input and outputs decoded audio on standard output. An SDR or other application would simply start this application and route audio through it whenever a user wants to decode FreeDV. The hope is that with this integration, many preexisting web-based SDRs will add support for FreeDV and allow people to listen to contacts over the internet, even if they don’t have a radio or the needed setup to run the FreeDV application.


Mooneer Salem

unread,
Nov 15, 2025, 4:16:14 AMNov 15
to digita...@googlegroups.com
Hi all,

More information on the command line application mentioned previously can be found in the respective README: https://github.com/drowe67/freedv-gui/blob/master/src/integrations/ka9q/README.md

Thanks,

-Mooneer K6AQ

Alan Beard

unread,
Nov 17, 2025, 10:00:40 PMNov 17
to digita...@googlegroups.com
Thanks Mooneer,
> More information on the command line application mentioned previously can be found in the respective README
On changing to the "build_linux" directory, "make -j2 freedv-ka9q" worked, but on running it:
cat ../wav/all_radev1.wav | PYTHONPATH=$(pwd)/rade_src src/integrations/ka9q/freedv-ka9q -i 8000 -o 8000 > aaa.wav
First I get: rtkit could not make high priority: Permission denied    --- and my user is in the "audio" group now.
OS here: Linux Mint 22.1 Xia   (My target machine,  Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz)
Also the output wav file varies in size almost randomly:
-rw-r--r-- 1 alanb tims 562560 Nov 18 12:02 aaa.wav
-rw-r--r-- 1 alanb tims 347200 Nov 18 12:04 bbb.wav
-rw-r--r-- 1 alanb tims 562560 Nov 18 12:07 ccc.wav
-rw-r--r-- 1 alanb tims 650880 Nov 18 12:08 ddd.wav

Always with the same input ../wav/all_radev1.wav

So I'm not confident in implementing it.



Mooneer Salem

unread,
Nov 18, 2025, 3:47:42 PMNov 18
to digita...@googlegroups.com
Hi Alan,

The rtkit thing is optional IIRC; I think it's even logged as a warning instead of an error.

Also, have you tried to listen to any of the output files yet to see if they sound as expected? If decode is working properly they should sound fairly close to the version in the RADE repo (https://github.com/drowe67/radae/blob/main/wav/all.wav).

Thanks,

-Mooneer K6AQ

Barry Jackson

unread,
Nov 19, 2025, 5:29:29 AMNov 19
to digita...@googlegroups.com
Alan you will need to add your user to the rtkit group to resolve the
permissions.

On 18/11/2025 20:47, Mooneer Salem wrote:
> Hi Alan,
>
> The rtkit thing is optional IIRC; I think it's even logged as a warning
> instead of an error.
>
> Also, have you tried to listen to any of the output files yet to see if
> they sound as expected? If decode is working properly they should sound
> fairly close to the version in the RADE repo (https://github.com/
> drowe67/radae/blob/main/wav/all.wav <https://github.com/drowe67/radae/
> blob/main/wav/all.wav>).
> README.md <https://github.com/drowe67/freedv-gui/blob/master/
> src/integrations/ka9q/README.md>
>
> Thanks,
>
> -Mooneer K6AQ
>
> On Sat, Nov 15, 2025 at 12:59 AM ea8ee <ea8...@gmail.com
> <mailto:ea8...@gmail.com>> wrote:
>
> Mooneer Salem K6AQ:
>
> … there’s also a new receive-only integration available
> that’s intended for web-based SDRs. Originally intended
> for ka9q-radio <https://github.com/ka9q/ka9q-radio>,
> this is an application that accepts audio samples on
> standard input and outputs decoded audio on standard
> output. An SDR or other application would simply start
> this application and route audio through it whenever a
> user wants to decode FreeDV. The hope is that with this
> integration, many preexisting web-based SDRs will add
> support for FreeDV and allow people to listen to
> contacts over the internet, even if they don’t have a
> radio or the needed setup to run the FreeDV application.
>
>
> El sáb, 15 nov 2025, 8:02, Alan Beard <bear...@gmail.com
> <mailto:bear...@gmail.com>> escribió:
>
> Having run FreeDV mode 700D or 700E for years now on
> OpenWebRX, do we have a
> command line decode script for RADE V1?
> 8k samples in from the RF DSP, 8k voice audio samples out
> Currently "freedv_rx 700E - -"
>
> And I'll put it on our Men's Shed WebSDR:
> shed.nepeanshed.org.au:8073 <http://
> shed.nepeanshed.org.au:8073>
>
>
>
> On Thu, Nov 13, 2025 at 5:31 PM 'Frank Rode' via
> digitalvoice <digita...@googlegroups.com
> <mailto:digita...@googlegroups.com>> wrote:
>
> Hello everyone,
>
> I have various transceivers that I use for FreeDV.
> Flex-6500, IC-705 with amp, and a Hermes Lite 2 with
> amp. I noticed that with the Hermes Lite 2, when the
> signal was very good and the QRG was undisturbed, I
> got a 10dB worse SNR in FreeDV with Thetis under
> Windows, and there were also synchronization
> problems at the beginning. This did not happen under
> Linux in pihpsdr with the same hardware. I then
> carried out some tests without external influences.
> I found the cause. It is due to the DSP settings in
> Thetis. The default setting for the filter type in
> Digital is Low Latency. It must be changed to Linear
> Phase.
>
> I would appreciate feedback if anyone else can
> confirm this.
>
> 73 Frank, DL2GRF
>
>
>
> --
> You received this message because you are subscribed
> to the Google Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving
> emails from it, send an email to
> digitalvoice...@googlegroups.com
> <mailto:digitalvoice...@googlegroups.com>.
> To view this discussion visit https://
> groups.google.com/d/msgid/digitalvoice/0e9bd869-
> cb7b-4e04-a36e-0f09ff52d5a9n%40googlegroups.com
> <https://groups.google.com/d/msgid/
> digitalvoice/0e9bd869-cb7b-4e04-
> a36e-0f09ff52d5a9n%40googlegroups.com?
> utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to
> the Google Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving emails
> from it, send an email to
> digitalvoice...@googlegroups.com
> <mailto:digitalvoice...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/
> d/msgid/digitalvoice/CAKVz7kbp_QS-
> b%3D4juOkBR4MzydjP9DiNnc%2B7pukmigtWk124%3DA%40mail.gmail.com <https://groups.google.com/d/msgid/digitalvoice/CAKVz7kbp_QS-b%3D4juOkBR4MzydjP9DiNnc%2B7pukmigtWk124%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the
> Google Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving emails
> from it, send an email to
> digitalvoice...@googlegroups.com
> <mailto:digitalvoice...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/
> msgid/digitalvoice/
> CADJ3RdTuMP%3D1%3DxbuHqaiST_L87Be9jPoivTwT_6%2BktyckBbXHw%40mail.gmail.com <https://groups.google.com/d/msgid/digitalvoice/CADJ3RdTuMP%3D1%3DxbuHqaiST_L87Be9jPoivTwT_6%2BktyckBbXHw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the
> Google Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving emails from
> it, send an email to digitalvoice...@googlegroups.com
> <mailto:digitalvoice...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> digitalvoice/
> CAAzDfxOKpYzgfKHR52mZWXo0M8PuCNXOmfkhavdq0J_n24pEWQ%40mail.gmail.com <https://groups.google.com/d/msgid/digitalvoice/CAAzDfxOKpYzgfKHR52mZWXo0M8PuCNXOmfkhavdq0J_n24pEWQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to digitalvoice...@googlegroups.com
> <mailto:digitalvoice...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> digitalvoice/CAKVz7kbo7nV-xmyTN%3DGdQxmRZLEJWaztBWc%3D5-
> FZpnA8LmbCLA%40mail.gmail.com <https://groups.google.com/d/msgid/
> digitalvoice/CAKVz7kbo7nV-xmyTN%3DGdQxmRZLEJWaztBWc%3D5-
> FZpnA8LmbCLA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "digitalvoice" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to digitalvoice...@googlegroups.com
> <mailto:digitalvoice...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> digitalvoice/
> CAAzDfxNAiQ1K_r1MHbycOQ69vxvALuLJOXrsMEke%3DROa3wVydg%40mail.gmail.com
> <https://groups.google.com/d/msgid/digitalvoice/
> CAAzDfxNAiQ1K_r1MHbycOQ69vxvALuLJOXrsMEke%3DROa3wVydg%40mail.gmail.com?
> utm_medium=email&utm_source=footer>.

Alan Beard

unread,
Nov 23, 2025, 3:44:59 AMNov 23
to digita...@googlegroups.com
Hi,
I've loaded SUSE Tumbleweed (ISO downloaded yesterday) and here goes:
zypper install wget git mercurial cmake
git clone https://github.com/drowe67/freedv-gui.git
read ans
zypper install libtool automake autoconf patch python313-numpy-devel libpulse-devel pulseaudio-setup \
mediastreamer2-devel pulseaudio-qt6-devel  pipewire pipewire-pulseaudio pipewire-alsa \
pipewire-devel pipewire-pulseaudio pipewire-tools wxWidgets-3_2-devel dbus-1-devel \
cmake-extras python313-torch-devel gcc14-c++ cpp14 wt g++  hamlib-devel libhamlib++4-devel hamlib \
libsndfile-devel python313-SoundFile python313-matplotlib

Then "build_linux.sh" and in "build_linux" "make freedv-ka9q"

Again, with the script, no audio useful:
cat ../wav/all_radev1.wav | PYTHONPATH=$(pwd)/rade_src src/integrations/ka9q/freedv-ka9q -i 8000 -o 8000 > aaa.wav

Runs and shows to STDERR doing something but not useful, a 2 sec file.

Rick Kunath

unread,
Nov 23, 2025, 1:56:37 PMNov 23
to digita...@googlegroups.com, Alan Beard
Al,

In addition to the deps you listed (you may already have had these
installed) I had to add:

sioclient, and the devel libs for ssl and ssl3and python313-virtualenv
(likely the make should have complained about missing devels for the ssl
stuff, but I don't know about the sioclient dep).

So your script that you shared in another email should do what? Run a
stream with useful output for a certain time?

Once I know that I can test here to see what I get. And for anyone else
on the email list this is also openSUSE Tumbleweed Linux here.

Rick Kunath, K9AO

Mooneer Salem

unread,
Nov 23, 2025, 2:00:49 PMNov 23
to digita...@googlegroups.com
Hi Alan,

freedv-ka9q needs raw audio samples, not WAV files. This seems to work for me:

mooneer@fedora:~/freedv-gui/build_linux$ sox ../wav/all_radev1.wav -t raw -r 8000 -b 16 -c 1 -e signed-integer - | PYTHONPATH=$(pwd)/rade_src src/integrations/ka9q/freedv-ka9q -i 8000 -o 8000 | sox -t raw -b 16 -c 1 -r 8000 -e signed-integer - aaa.wav
10:57:50 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:142: freedv-ka9q version 2.1.1-dev-4df0
10:57:50 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:234: Expecting int16 samples at 8000 Hz sample rate on stdin and outputting int16 samples at 8000 Hz on stdout
10:57:50 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:237: Initializing RADE library...
10:57:50 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:240: Creating RADE object
Python garbage collector disabled (previous state 1)
model file:
import_array returned: 0
model_name: model19_check3/checkpoints/checkpoint_epoch_100.pth bypass_enc: 1
Rs: 33.33 Rs': 50.00 Ts': 0.020 Nsmf: 120 Ns:   4 Nc:  30 M: 160 Ncp: 32
n_features_in: 432 n_floats_in: 240 Nmf: 960 Neoo: 1152 n_eoo_bits: 180
loading: radae_rxe
bypass_dec: 2 foff_err: 0.000000
Rs: 33.33 Rs': 50.00 Ts': 0.020 Nsmf: 120 Ns:   4 Nc:  30 M: 160 Ncp: 32
Input BPF bandwidth: 1740.000244 centre: 1475.000000
n_features_out: 432 n_eoo_bits: 180 n_floats_out: 240 nin_max: 1120 nin: 960
10:57:53 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:246: Creating RADE text object
10:57:53 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:250: Creating FARGAN objects
10:57:53 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:279: Starting RX thread
10:57:53 INFO /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:282: Synchronizing startup of RX thread
10:57:53 WARN /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:317: Callsign, frequency and grid square/locator must all be provided to enable FreeDV Reporter reporting. Not connecting to FreeDV Reporter.
10:57:55 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -3) to FreeDV Reporter
10:58:02 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -2) to FreeDV Reporter
10:58:04 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -3) to FreeDV Reporter
10:58:06 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -1) to FreeDV Reporter
10:58:08 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -3) to FreeDV Reporter
10:58:11 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -5) to FreeDV Reporter
10:58:12 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR -4) to FreeDV Reporter
10:58:13 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR 0) to FreeDV Reporter
10:58:14 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR 2) to FreeDV Reporter
10:58:15 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR 3) to FreeDV Reporter
10:58:16 INFO /home/mooneer/freedv-gui/src/integrations/common/ReportingController.cpp:157: Reporting RX callsign  (SNR 4) to FreeDV Reporter
...
10:58:44 WARN /home/mooneer/freedv-gui/src/integrations/ka9q/main.cpp:357: stdin pipe closed, exiting
Python garbage collector reenabled.
mooneer@fedora:~/freedv-gui/build_linux$ ls -l aaa.wav
-rw-r--r--. 1 mooneer mooneer 674284 Nov 23 10:58 aaa.wav
mooneer@fedora:~/freedv-gui/build_linux$ 

Thanks,

-Mooneer K6AQ

Mooneer Salem

unread,
Nov 23, 2025, 2:02:11 PMNov 23
to digita...@googlegroups.com, Alan Beard
Hi Rick,

Interesting that you still needed to add sioclient as FreeDV hasn't had that dependency for at least a few versions now. If you remove that package, what errors do you get during the build process?

Thanks,

-Mooneer K6AQ

--
You received this message because you are subscribed to the Google Groups "digitalvoice" group.
To unsubscribe from this group and stop receiving emails from it, send an email to digitalvoice...@googlegroups.com.

Rick Kunath

unread,
Nov 23, 2025, 3:43:24 PMNov 23
to digita...@googlegroups.com, Mooneer Salem, Alan Beard
I don't know Moneer. That was a part of my running build-cheat-sheet, so
it was just in there from way back.

Rick Kunath, K9AO

Alan Beard

unread,
Nov 25, 2025, 6:20:26 AMNov 25
to digita...@googlegroups.com
On my Ryzen 5 box XCP-NG I ran up Mint 22.1 as is on the target m/c above.
After many hours to get Torch up, Segmentation fault (core dumped)

Mooneer Salem

unread,
Nov 25, 2025, 12:22:50 PMNov 25
to digita...@googlegroups.com
Hi Alan,

What is generating the segfault? There's not enough information to know whether it's a FreeDV problem or something else going on.

Thanks,

-Mooneer K6AQ

Alan Beard

unread,
Dec 3, 2025, 11:44:32 PM (7 days ago) Dec 3
to digita...@googlegroups.com
Hi Mooneer,

I note in your "it works for me" line:
cd ~/src/freedv-gui/build_linux
 sox ../wav/all_radev1.wav -t raw -r 8000 -b 16 -c 1 -e signed-integer - | PYTHONPATH=$(pwd)/rade_src src/integrations/ka9q/freedv-ka9q -i 8000 -o 8000 \

 | sox -t raw -b 16 -c 1 -r 8000 -e signed-integer - aaa.wav

on using "aplay -D pipewire aaa.wav" the audio is gibberish.

aaa.wav is here on Fedora 42

aaaa.wav is from Linux Mint 22.1 xfce on a Blackview M80 installed back in March 2025.

On Mint Mate 22.1 with Python 3.12 the Python Virtual environment doesn't show
and the results are always a random length file.and the SNR values are not as per yours.

Do you have a Virtual Environment to evaluate different Linux flavours?
(I'm using XCP-NG on both a Ryzen5 and a 2014 Dell Xeon.)


aaa.wav
aaaa.wav

Mooneer Salem

unread,
Dec 4, 2025, 6:54:11 AM (7 days ago) Dec 4
to digita...@googlegroups.com
Hi Alan,

Please see https://github.com/drowe67/freedv-gui/pull/1120 and let me know if that works any better for you.

Thanks,

-Mooneer K6AQ

Alan Beard

unread,
Dec 6, 2025, 2:21:40 PM (4 days ago) Dec 6
to digita...@googlegroups.com
Hi again Mooneer,

I've implemented  https://github.com/drowe67/freedv-gui/pull/1120 on the 2.1.0 freedv-gui.tar.gz "latest" download
and here on Fedora 42 the decoded audio is, as expected, very good.
I've looked into the code with  "git clone https://github.com/drowe67/freedv-gui.git" and src/integrations/ka9q/mail.cpp is different.
Notably missing the the, line ~370 "while" replacing "if" and the later "break".
Copying main.cpp (that works) into src/integrations/ka9q/. and compile and audio is fine.

Though, the SNR values are oddly shown:
Reporting RX callsign  (SNR 33) to FreeDV Reporter

33 ?? what did I accidentally change?

Thanks
Alan VK2ZIW

main.cpp

Mooneer Salem

unread,
Dec 7, 2025, 4:23:20 PM (3 days ago) Dec 7
to digita...@googlegroups.com
Hi Alan,

33 is actually close to the correct SNR given the input file being used (as it was locally generated, not recorded OTA). I probably should have realized there was a problem more quickly based on the SNRs previously reported.

BTW the main issue was an attempted buffer overflow (number of samples were expected in the function being called while number of bytes was actually being passed in instead). The other change was mainly to ensure that decoded audio is output more quickly and to avoid dropped samples.

Thanks,

-Mooneer K6AQ

Alan Beard

unread,
Dec 7, 2025, 4:52:26 PM (3 days ago) Dec 7
to digita...@googlegroups.com
Thanks,

Now I can try to implement this in OpenWebRX, is working on Mint LXDE 22.1 here on a mini-pc Blackview M80. (Intel N97).

Thanks

Alan VK2ZIW

Reply all
Reply to author
Forward
0 new messages