SDR Television Beta #2

Simon Brown • April 24, 2025

The first Major Update

First of all, a big thank-you to everyone who has been trying the software, for the feedback and the help finding a very stupid bug which caused the "Encountered an improper argument" error.


Don't worry - if you use QO-100 then I'll be watching you!


At the bottom of this blog entry are new kits for both SDR Radio and SDR Television, but first here's what's been happening.


SDR Radio

Attacked two problems,

  1. Selecting Pluto/LibreSDR connected to the network,
  2. Slow startup when selecting Pluto/LibreSDR connected via USB.


Network Connection

This was a bug I introduced when adding custom LibreSDR support. I do hope it's fixed, if you have a problem please show me the Address field in your Radio definitions.


Slow Startup

It's always good to revisit code with a fresh brain - sometimes design errors jump out and smack you between the eyes. When starting a USB device I was searching in all backends (network, usb, ...) for the device when I knew already that it was a USB device. Now I just look for the device I want to open in the USB devices, this has significantly reduced the startup!


TX Filter Width

Now disabled while transmitting.


TX Offset.

The default TX offset is ignored in wideband (DATV) mode, this was causing stations to be 25kHz off frequency.


Bad Waveform

I'll be working on a problem when running the Pluto/LibreSDR with a bandwidth < 1,000 kHz where the signal appears to have a small crown! Recommended bandwidth is 1,536 kHz or higher.


SDR Television

If you select Transmit > Send a check is made to ensure you have entered your Callsign and Name in the TX: Configuration panel in the program settings (see below). If you haven't then you are prompted to do so.


NVIDIA Broadcast App

I also stumbled across NVIDIA Broadcast App which "transforms any room into a home studio". To use this you'll need a modern RTX GPU from NVIDIA. More information on this page. It's worth trying, has some good audio features.

NVIDIA Broadcast App

NVIDIA Broadcast is a free application designed to enhance the quality of livestreams, video calls, and voice chats by using artificial intelligence (AI) to upgrade standard webcams and microphones into smart, premium devices. It leverages the dedicated Tensor Core AI processors found on NVIDIA GeForce RTX, TITAN RTX, or Quadro RTX GPUs to provide real-time AI-powered effects[1][2][5][8].


Key Features

  • Noise Removal: Removes unwanted background noise from your microphone feed, such as keyboard clicks, pets, or street noise. This feature can also clean up incoming audio from others[1][5][8].
  • Virtual Background: Allows you to remove or replace your webcam background with images, gameplay footage, or a blur effect, similar to a green screen, without needing special equipment[1][5][6][8].
  • Auto Frame: Uses AI to track your face and keep you centered in the camera frame, even as you move around[1][5][6][8].
  • Video Noise Removal: Reduces visual noise and graininess from your webcam feed, especially helpful in low-light conditions, making the video appear clearer and more professional[5][6].
  • Room Echo Removal: Filters out echo from your microphone, improving clarity during calls and recordings[6].
  • Virtual Key Light and Studio Voice (Beta): Additional features in development to further enhance video and audio quality[5].


Compatibility and Use Cases

  • Works with most popular livestreaming, video conferencing, and voice chat apps, including OBS, Discord, Zoom, and more[1][2][5].
  • Requires a compatible NVIDIA RTX GPU for full functionality, as the AI effects rely on Tensor Cores[1][5][8].
  • Can be used for game streaming, professional video calls, online teaching, content creation, or simply improving everyday communication quality[2][3][7].


How It Works

NVIDIA Broadcast processes your audio and video feeds in real-time, applying AI effects to clean up noise, improve image quality, and add professional touches—all without the need for expensive hardware or a dedicated studio setup[1][2][5][8].


In summary, NVIDIA Broadcast is a powerful, AI-driven tool that transforms any room into a home studio, making high-quality streaming and communication accessible to anyone with a compatible NVIDIA RTX GPU[2][5][8].


Citations:

[1] https://www.nvidia.com/en-gb/geforce/news/gfecnt/202009/nvidia-broadcast-app/

[2] https://www.nvidia.com/en-gb/geforce/broadcasting/broadcast-app/

[3] https://www.nvidia.com/en-gb/design-visualization/software/broadcast-app/

[4] https://www.youtube.com/watch?v=gTbb_giw4lc

[5] https://www.nvidia.com/en-gb/geforce/broadcasting/broadcast-app/faq/

[6] https://www.youtube.com/watch?v=_kHFTeL1RVU

[7] https://www.nvidia.com/en-gb/geforce/broadcasting/broadcast-sdk/resources/

[8] https://www.windowscentral.com/what-nvidia-broadcast


---

Description created (because I'm lazy today) by Perplexity: https://www.perplexity.ai/

The Kits

So, finally here are the kits:


SDR Radio:

SDR Television:


Any problems - just shout!

By Simon Brown September 14, 2026
History
By Simon Brown September 14, 2026
SDR Television v1.1.6 September 14th, 2026. To avoid confusion with the test versions of 1.1.5, this kit is now 1.1.6. Receiver Improved Gardner timing recovery. Improved Sum-product decoding. Redesigned soft decoder. Redesigned RRC matched filter. Note: this kit should be able to gain a dB or so sensitivity when detecting the frame header. v1.1.6 will have even better frame detection, hence better weak signal decoding. LDPS Settings, important! Open this page, select Defaults . There is no need to adjust the Sum-product optons, these options are only for development and may be hidden in future kits. Transmit Provider changed from SDR Television to SDR TV, some receivers only display a maximum of 18 characters in the provider field. Downloads are at the bottom of this page.
By Simon Brown September 14, 2026
Improving DVB-S2 PLHEADER Detection at Low SNR Reliable detection of the DVB-S2 Physical Layer Header (PLHEADER) is one of the first challenges faced by a DVB-S2 receiver. Before the receiver can decode the payload, it must determine where a physical-layer frame begins, establish carrier phase and frequency sufficiently accurately, and decode the signalling contained in the PLS code. This becomes particularly interesting at very low SNR. I have been comparing two approaches: A traditional differential SOF/PLS detector. A new coherent, maximum-likelihood-oriented PLHEADER detector designed to exploit substantially more of the information contained in the DVB-S2 header. Both methods are trying to answer essentially the same question: At what symbol does the DVB-S2 PLHEADER begin, and what carrier frequency and phase best explain the received 90-symbol header? The difference is how much of the available information they use to answer that question. The full PDF is here .
By Simon Brown September 13, 2026
Project for 2027? Love it or hate it, FT-8 is here to stay. I use WSJT-X to monitor 2m and sometimes 70cms. As a software developer, it's always rewarding to use one's own software. So I just asked ChatGPT whether it (he, she, they) even knew about FT-8. The response was amazing. So, this could be the start of a project which is also used for EME and meteor scatter modes. Read on dear reader, read on.
By Simon Brown August 27, 2026
August 27th, 2026 Default Audio Device When changing the default audio device selection in Windows, SDR Console was following the change but not reapplying the latest volume change. Example: I start playback, adjust the volume, then after a while enable my Bluetooth speaker an go outside. When the speaker is enabled SDR Console switches but didn't apply the change in volume. RDS processing AGC replaced with normalisation, Hilbert filter redesigned. Shouldn't make much difference. MIDI Startup I believe I have found the cause of the slow start of SDR Console. As part of the SDR Console startup I always call midiInGetNumDevs() to get the number of attached MIDI devices, even if the user hasn't enabled MIDI. At some stage in 2026 Microsoft introduced a bug where the first call to midiInGetNumDevs() after starting the computer results in blocking all asynchronous activity if there are no MIDI devices connected. If there are MIDI devices connected then it returns after ~100ms. I now only call midiInGetNumDevs() on startup if there are user definitions. Some programs are experiencing even worse behaviour. There should be a Windows update soon with a fix, but for now the kit below should resolve this problem in 99% of cases. Downloads Download beta kits here .
By Simon Brown August 26, 2026
QO-100 Footprints
By Simon Brown August 26, 2026
SDR Television v1.1.4 User Interface Rearranged ribbon bar, added Forward Error Correction (FEC) to the Home panel. Receiver Currently trying to improve LDPC decoding for low SNR. Part of this work involves reducing CPU load in the LDPC decoder. Planning to add advanced decoding in v1.1.5. Changed the list of FEC / LDPC algorithms, removing min-sum and min-sum correction. Optimised offset min-sum algorithm to reduce CPU load. Optimised Bose-Chaudhuri-Hocquenghem (BCH) processing. Added sum-product. Corrected LLR soft scaling for QPSK. Changed default RRC filter length to 12 symbols, previous value of 30 was too long. Updated Feed-Forward AGC with a design from CoPilot. Optimised Gardner TED RRC filter length, now 25 taps. Increased the receive RRC filter rolloff factor by 25% to capture more energy with weak signals. Reset LDPC after 1 second of inactivity. FEC - LDPC There are now two LDPC algorithms, Offset min-sum, and Sum-product. Sum-product is more sensitive than offset min-sum but currently doesn't work at all for FEC rates lower than 1/2 (1/4, 1/3 and 2/5). When sum-product is selected and the rate is lower than 1/2 then offset min-sum is used. The default damping settings for sum-product are shown below.  The aim is to work on sum-product with the help of ChatGPT in 2027 to get the maximum possible sensitivity. Downloads are at the bottom of this page.
By Simon Brown July 27, 2026
July 26th, 2026 Reuter RSR200B Added initial support. Fobos Finalised support for Fobos SDR, only the Agile firmware is supported. Some early Fobos SDR units had HF2 and HF1 swapped on the case printing. FFT When using NVIDIA CUDA for the FFT the returned buffers now use memory from the heap rather than pinned memory (*). Reduced the CPU load in the FFT Helper DLL. The data from the FFT (CUDA, IPP, OpenCL) is processed to match the display DIPs. When running Broadcast-FM with x4 resolution there were 550 FFT bins per display pixel (DIP). These 550 bins were averaged which takes quite some processing, especially when running a matrix display with many receivers enabled. I now down-sample the bins to a maximum of (about) 32 which doesn't affect the display or any DSP but does reduce the CPU. Frequency Database Loading of the frequency database into memory-mapped backing now much faster. Pluto TX Doppler support for Pluto / LibreSDR. Have tested this by adding debug info, seems OK 🙂 . RDS Added variable font size in the RDS editor window. Forced uppercase of PS text in the RDS Editor removed. Change to RDS Logfile updates while the editor is open & visible. Updates are now allowed, previously not so. Recordings Fixed font size error in the playback, navigation window (was incorrect logic). When starting the video recorder a sanity check makes sure the selected folder exists and is accessible. Satellite Satellite definition file format has changed, no need to update your settings but support for the new OMM (.xml) format is included. I'm hosting satellite data on my (new) Akamai server, these is currently a cache of the Celestrak data. I'll add a web page soon which explains what's been happening. Transmit Audio mute is now a per-profile setting. Other Fixed an error opening the matrix display while the SDR was already started. Crash when selecting "Configure" from the Select Radio window fixed. Does not create an error when the graphics driver restarts.
By Simon Brown July 10, 2026
SDR Television v1.1.3 User Interface Fixed erroneous cursor flicker in Settings help text and Receive, Transmit panes. Fixed error in the spectrum squelch logic. Minor fix/improvement in QPSK LUT lookup for low values. Receiver Use highest possible quality decimation for symbol rates of 333ksps and lower. Added optional Doppler correction for LEO/MEO satellites such as MARMOTsat (July 2026). This will most probably be tweaked when the DVB-S2 transmissions started. Downloads are at the bottom of this page.