Probably not noticeable but makes me feel better 🙂 . I see a slight drop running 24 Broadcast FM channels and the Matrix display.
Audio recording cache now only runs for the current (active) receiver, running on all was causing serious issues when many Broadcast-FM receivers were active. As part of hunting the above, I optimised the queue lists in the background threads (you'll not really notice much difference here).
Possibly fixed buffer overrun / trashing stack with SDRPlay, awaiting confirmation.
The above is an issue I wanted to address for a long but takes quite a lot of testing, rebooting etc.
Added RX UDP packet queuing.
This should be enabled when the HL2 is connected via Wi-Fi, or if you do a lot of browsing or other network-intensive work. If your Hermes-Lite 2 (HL2) is connected to your computer over a series of routers and / or Wi-Fi then you will probably suffer from:
To overcome this enable the intelligent UDP queue which solves the above problems as far as possible - missing packets cannot be recreated, but duplicates can be detected and the packets can be forwarded to this program in the correct order.
Note: the following affect UDP packet loss:
If your HL2 is connected direct to an ethernet port on your computer (recommended) or via a good quality router then you should not suffer undue UDP packet problems. The latency added by this queue is ~33ms.
Found some serious stupidity with External Radio support, have rewritten part of the code. May have been responsible for crashes etc.
Tweaked the Airspy server support.
Initial downconverter support.
Added SPECTRAN V6 support via RTSA and SDK.
Added a Copy option to the Radio Definitions window. The converter selection now uses the definition Title, previously the Model. So:
So you can now have HL2 (2m), HL2 (70cms) etc. No doubt more follow-up requests will come along.
Added NR5 Cleanup by Joshuah Rainstar - Support!
Fixed problem in all GDI/GDI+ windows when painting a null region, caused program to hang or run very slowly. First detected when AGC response window not fully visible.
Added waterfall shading using the Hillshade algorithm.
Fixes problem recording more than one Broadcast FM receiver if muted.
Upgraded from LAME 3.99.5 to 3.100, this now appears to work properly when recording two or more receivers simultaneously.
When a backup fails a message is displayed (Ribbon Bar, Tools, Settings, Backup, Backup).
Tweaked the Airspy server support.
Analyser - fixed some stupid bugs when using the local FFT on the CPU (i.e. no CUDA, no OpenCL). The whole chain could allocate far too much memory. Anyway, it's now working here as it should, any crashes please send crash dumps etc.
Once VOX is triggered the activation (gain) threshold is reduced by 6dB so final words/syllables are not lost. As a result, VOX response is much improved.
Fixed error with AM DC offset (DC correction was disabled).
FM demodulation does not use AGC - doesn't need it; as a result if the equaliser has any gain the output can saturate. This kit applies the equaliser more intelligently; the output is compensated for the peak equaliser gain. What we now have is the equaliser working as it should in FM.
Getting ready for summer Band II E's I once again visited the topic of performance and CPU load as Band II fans often use a high bandwidth - 10MHz at least and also may have many receivers active.
Been working on program closedown; it may still crash while closing but shouldn't. This is to do with not unloading dynamically loaded DLLs, fixing bugs while exiting DLLs and 'other stuff'. My aim is for the program to close 100% cleanly and not having to catch unexpected errors.
Decimation loss of gain now fixed. The output level of the decimation DLL I wrote was ~7.5dB down on the input. Normally this would not be a problem, but it was affecting the data recorder when a reduced bandwidth was selected. Note: I still want to run through this logic when recording very low-level signals.
I never thought to look for any possible gain in the decimator; now I have.
When a new decimation instance is created a signal is passed through the chain and the gain calculated. This value is then used to ensure the output level is correct. This takes typically ~4 milliseconds.
The result of above is that the signals will be stronger (at correct level) for:
Minor improvement in the design of decimation filters. These are designed when needed, the algorithm has been tweaked.
Corrected Airspy HF+/Discovery internal DSP settings so the default visual gain is now 0dB. Note: still want to look at this when the HF+/Discovery is running on a server.
Added a first attempt at File Exchange - copy configuration files between instances of SDR Console. Feedback very welcome! Ribbon Bar, Tools, Settings, File Exchange. Read the help file.
Increased time to load the EEPROM from 500ms to 2,000ms.
Improved the logging when loading the EEPROM.
Load, Save of EEPROM working correctly.
After a load, whether it works or not, look at the logfile.
Added memories Clear All button: Ribbon Bar, Memories, Bank, Clear All
Corrected Afredi to remove A/D correction - this is a short-term fix while I find out exactly why the A/D correction resulted in massive memory allocation.
Fixes error starting a child instance - it was a bug but the faster startup made it appear.
In an attempt to speed up anti-virus software scanning all my DLLs when starting SDR Console / Select Radio window after an install:
These changes should mitigate slow startup due to anti-virus programs scanning everything.
Reduced S3 gain by 16dB, this is just a multiplication of the IQ values returned from the S3, not anything to do with the hardware.
When defining the Automatic Schedule a new Hours field is available.
Entries can be deleted from the Automatic Schedule display.
In an attempt to speed up anti-virus software scanning all DLLs when starting SDR Console / Select Radio window after an install:
As a result the software installs and starts faster.
Fixed a long standing error with Pluto definitions.
Added extra options:
Vintage Analog Meter
Light Analog Meter
S Meter Options
Fixed a long standing error with Pluto definitions.
On the new development PC (Intel NUC) I don't have CUDA and was unhappy with the CPU load when running the Airspy R2 at 10 MHz bandwidth, hence the FFT / DFT change which I'd been planning for quite some time.