Skip to content

v2.4.1

Latest

Choose a tag to compare

@tmiw tmiw released this 31 Oct 00:59
· 3 commits to master since this release
321db15

FreeDV 2.4.1 has been released, including bug fixes since 2.4.0. These changes are outlined below:

  1. Bugfixes:
    • Add logic to prevent FIFO sizes that are too small to allow TX thread to function. (PR #1474)
    • Fix RX/TX level-meter gauge contamination. (PR #1475) - thanks @barjac!
    • Fix Hamlib-related build failure with Hamlib 5.0~git. (PR #1477)
    • macOS: Fix dyld error on startup when enabling sanitizers in build. (PR #1478)
    • Fix potential equalizer bug that could introduce corrupted audio. (PR #1480)
    • Fix uninitialized value read during waterfall plot render. (PR #1481)
    • Match std::atomic memory ordering to what each atomic actually synchronises. (PR #1482)
    • Remove use of mutexes in audio path during callsign decode. (PR #1486, #1493)
    • Tighten audio thread timings on macOS and Windows. (PR #1494)
    • Harden audio FIFO handling and WASAPI stop timing. (PR #1496)
    • Fix crash when testing Easy Setup with an invalid audio configuration. (PR #1500)
    • Various data race cleanups. (PR #1502)
    • Avoid page cache miss on startup when loading RADE. (PR #1506)
    • Stop playback of RX file before TX start. (PR #1507)
    • Fix horizontal lines in waterfall on HiDPI/fractionally scaled Linux displays. (PR #1514)
    • Reduce GUI thread paint and FreeDV Reporter overhead. (PR #1515, #1530)
    • PulseAudio: give each device its own connection. (PR #1523)
    • Fix possible deadlock on playback completion. (PR #1533)
    • Windows: add logic to detect audio device stalls. (PR #1537)
    • Keep RX muted after TX until the radio confirms PTT off. (PR #1536, #1603, #1605)
    • Fix FreeDV hanging when starting the Voice Keyer with a cloud-backed file. (PR #1534)
    • Fix data races on settings read by the audio threads. (PR #1535)
    • Prevent a closed network connection from terminating FreeDV with SIGPIPE. (PR #1540)
    • Fix equalizer bass/treble filters being designed for the wrong sample rate. (PR #1542)
    • Fix frequency list entries occasionally being saved 1 Hz low. (PR #1542)
    • Fix text settings containing e.g. "$HOME" being altered when loaded. (PR #1542)
    • Hamlib/OmniRig: fix frequency/mode requested prior to connecting not being applied. (PR #1542)
    • Reject stereo files in "Play File - From Radio" instead of playing them at half speed. (PR #1542)
    • Fix possible crashes when stopping while using a serial port for PTT input. (PR #1542)
    • Hamlib: fix limit on time spent waiting for the radio not always being applied. (PR #1542)
    • FreeDV Reporter: fix incorrect distances/headings when one's own grid square is incomplete. (PR #1542)
    • FreeDV Reporter: fix stations sorting in the wrong order when their frequencies are more than about 2.1 GHz apart. (PR #1558)
    • Fix crash when closing FreeDV right after stopping with a radio connected. (PR #1543)
    • FreeDV Reporter: fix idle filter menu check marks after cancelling a custom idle time. (PR #1547)
    • FreeDV Reporter: disable Request QSY once a request has been sent. (PR #1547)
    • Voice keyer: fix button not showing "Stop Voice Keyer" while the voice keyer is running. (PR #1549)
    • Voice keyer: fix newly recorded file being forgotten the next time FreeDV starts. (PR #1549)
    • Fix Load Default Configuration reloading the configuration in use instead of the default one. (PR #1549)
    • Linux: fix Load Default Configuration loading an empty configuration rather than the default one. (PR #1557)
    • Logging: fix logged contacts sometimes being timed a second early. (PR #1552)
    • Fix FreeDV being unable to exit after pressing Start with a sound device that couldn't be opened. (PR #1559)
    • Fix possible crash when an audio device fails to open before FreeDV has asked to be told of its errors. (PR #1559)
    • Linux: fix audio pausing for up to two more seconds after FreeDV's audio processing has been held up for more than two. (PR #1559)
    • Settings: fix a typed-in frequency losing its last three digits when switching from kHz to MHz and pressing Apply. (PR #1559)
    • Linux: fix crash on pressing Start with no sound server (PipeWire/PulseAudio) running. (PR #1555)
    • Linux: report losing the sound server while running, and fix Stop getting stuck afterwards. (PR #1555)
    • Fix each use of Adjust Monitor Volume leaving a hidden popup behind. (PR #1555)
    • Filter: fix equaliser changes being ignored if the window was opened before pressing Start. (PR #1552)
    • Fix each use of Log QSO leaving a hidden window behind. (PR #1552)
    • Recording: restrict a pasted recording suffix to the same characters as a typed one. (PR #1552)
    • FreeDV Reporter: fix a direction of 0 being shown for stations without a usable grid square after changing the band filter. (PR #1564)
    • macOS: fix the last block of audio being sent to the radio over and over after transmitting, rather than silence. (PR #1564)
    • Fix a saved main window size too small to be of use being kept. (PR #1564)
    • Rig control: fix FreeDV briefly going back to the previous frequency after changing it (and so e.g. choosing the wrong sideband for analog mode when switched to straight after changing band). (PR #1564)
    • macOS/Windows: fix possible crash or garbled log output when some audio device and thread errors are logged. (PR #1564)
    • Windows: fix the main window being too small to show the waterfall and spectrum the first time FreeDV is started on a high DPI display. (PR #1565)
    • Windows: fix FreeDV Reporter not removing what's left of a flag from the status message after part of it is deleted. (PR #1565)
    • Fix a possible crash when FreeDV is asked to exit again while it's exiting with the FreeDV Reporter window open. (PR #1565)
    • Fix Test PTT sometimes staying greyed out after a radio or serial port that couldn't be opened. (PR #1565)
    • Fix silence being mixed into the first half second of each transmission. (PR #1567, #1568)
    • Fix the voice keyer's RX pause and wait for a reply, the slow SNR display and the statistics reset after losing sync running twice as fast as intended. (PR #1571)
    • Fix the spectrum plot's sync tuning line being drawn using an uninitialized value until the plot's first update. (PR #1572)
    • FreeDV Reporter: fix stations that connected or transmitted within the same second sorting in a random order. (PR #1573)
    • Fix a data race on whether FreeDV is running, between the window and the thread that starts and stops it. (PR #1575)
    • Fix data races between the window, audio and processing threads on squelch, resync count, sound card count, PortAudio counters, debug switches, recording state and EQ filter re-apply flags. (PR #1578)
    • Fix data races on the transmit mode selection when changed while FreeDV is running, and on the queue holding received text characters. (PR #1578)
    • Linux: Fix Options frequency list scrollbar on first open. (PR #1579)
    • Fix data races between the window and the threads that start/stop FreeDV and process audio on the frequency offset display, the list of active reporters and the audio device latency check at the end of TX. (PR #1583)
    • macOS: fix a possible crash when an audio device that failed to start, or was already stopped, is stopped again. (PR #1583)
    • Windows: fix audio devices closing their timing handles while the audio processing thread could still be waiting on them, and undoing the 1 ms timer resolution request twice. (PR #1583)
    • Prevent duplicate contacts from being restored. (PR #1589)
    • Disable Log QSO button if logging is disabled. (PR #1589)
    • Keep a typed FreeDV Reporter status message when the saved list closes. (PR #1590)
    • Stop the radio recording budget at zero instead of wrapping it. (PR #1592)
    • Windows: Fix issue preventing audio devices that don't support raw mode from starting. (PR #1594)
    • PlotScalar: draw the trace when the plot is wider than its sample count. (PR #1597) - thanks @barjac!
    • Linux/FreeDV Reporter: fix uninitialized value deciding whether a selection is honored. (PR #1606)
    • Allow microphone and speaker devices below 16 kHz (such as Bluetooth headsets in call mode) with a warning instead of refusing to start. (PR #1608)
    • FreeDV Reporter: fix possible crash when repeatedly connecting and disconnecting. (freedv-backend PR #44)
    • FreeDV Reporter: fix exiting FreeDV taking up to 60 seconds when the server stalls setting up the secure connection; give up on it after 10 seconds instead. (freedv-backend PR #63)
    • FreeDV Reporter: fix memory leak when FreeDV exits just as FreeDV Reporter connects. (freedv-backend PR #75)
    • Recording: fix up to the last 100 ms of audio being lost when a recording stops, and log when audio has to be dropped. (freedv-backend PR #71, #72)
    • Fix conversion of 16-bit audio to floating point going slightly past full scale. (freedv-backend PR #60)
    • Fix buffer overruns when one RADE receive call decodes several frames and when resampling 8 kHz audio by large ratios. (freedv-backend PR #78)
    • Fix the audio pipeline rebuilding its resampler when the sample rate is unchanged but not when it changes, and freeing the kept resampler twice. (freedv-backend PR #78)
    • FreeDV Reporter: refuse a secure connection if TLS 1.2 or certificate hostname checking can't be enforced. (freedv-backend PR #78)
    • macOS/FreeDV Reporter: fix endless loop and log spam when the connection closes while sending. (freedv-backend PR #78)
    • Fix network and threading code continuing after a failed socket or semaphore setup, Linux semaphore waits ending early on a signal, and a macOS crash on an empty background task. (freedv-backend PR #78)
    • Windows: fix exiting FreeDV taking 20 seconds or more while logging heavily. (freedv-backend PR #78)
  2. Build system:
    • Windows versions are now built with llvm-mingw 20260908 (PR #1489)
    • Ccache support extended to third party dependencies. (PR #1498, #1505))
    • Fix bundled libsndfile build on lib64 systems and strncpy build error. (PR #1510)
    • Only use system libraries that can actually be linked. (PR #1521)
    • Optimizations to reduce full rebuild time. (PR #1538)
    • Build bundled wxWidgets and LibreSSL optimized and without debugging information, and only use ccache in CI for the builds that compile them. (PR #1561)
    • Add unit tests for non-GUI code. (PR #1542)
    • Add tests of whole transmissions through the TX/RX threads without sound cards. (PR #1567)
    • Resolve build failure on OpenSUSE Tumbleweed. (PR #1577)
    • Fix Windows build failures with newer llvm-mingw (clang/libc++) releases. (freedv-backend PR #51)
    • Fix Windows build with older mingw-w64 headers that don't declare SetThreadDescription. (freedv-backend PR #60)
    • macOS: fix RNNoise build failure with newer Xcode versions. (freedv-backend PR #59)
    • Fix build errors with GCC 16 and with OpenSSL 4 deprecations. (freedv-backend PR #41, #73)
  3. Documentation:
    • Update documentation to reflect new repo URL. (PR #1569)
  4. Other:
    • Various GUI performance improvements. (PR #1481, #1521, #1524, #1527, #1531)
    • Windows audio thread timing improvements. (PR #1488)
    • Log when the sound server puts a PulseAudio stream on another device. (PR #1591)
    • Log from the audio threads without blocking them. (freedv-backend PR #60)

Available binary releases (click Assets to expand the section and retrieve download links):

  • FreeDV-2.4.1-windows-x86_64.exe (64 bit Windows for Intel/AMD)
  • FreeDV-2.4.1-windows-aarch64.exe (Windows on ARM)
  • FreeDV.dmg (ARM/Intel macOS, Big Sur/11.0 or later required)
  • FreeDV-2.4.1-x86_64.AppImage (AppImage for Linux for Intel/AMD)
  • FreeDV-2.4.1-aarch64.AppImage (AppImage for Linux for ARM systems, e.g. Raspberry Pi 5+)