* Fix compiler error with Hamlib 5.0.
* Fix typo.
* Bring back old code for Ubuntu 22.04.
* Update CMake to explicitly look for rig_state.h.
* Add PR #1477 to changelog.
* Fix typo.
* Debug Windows build size issue.
* Revert previous change and MakeAvailable usage for wxWidgets.
* Use non-deprecated version of FetchContent_Populate.
* Need to provide other parameters to Populate.
* Add EXCLUDE_FROM_ALL for new enough CMake.
* Add PR #1386 to changelog.
* Remove FreeDV integrations and all common files in favor of freedv-backend versions.
* Fix CI due to use of freedv-backend.
* Add README pointing to new location of integrations.
* Add missed file.
* Fix linker errors.
* Clean up AppImage generation script.
* Make sure we have loss.py available when running loss test.
* Fix macOS lint failure during CI run.
* Fix include file paths in Windows build.
* Need to include fdv_util for OmniRig.
* Try hardcoding RADE search path for Windows installer.
* Make sure prerequisite files exist for reporting tests.
* Add PR #1368 to changelog.
* Update to use samplerate.
* Revert "Update to use samplerate."
This reverts commit 16ceb638f3.
* Add missing defines when building Hamlib from source.
When building Hamlib from source (BuildHamlib.cmake always fetches 4.7.1),
HAMLIB_USE_FRIENDLY_ERRORS and HAMLIB_CONST_WORKAROUND were never defined,
causing a -Werror=deprecated-declarations build failure on rig_get_conf().
The system Hamlib path already sets these via a version check; mirror them
here since the bundled version is known to support both.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add PR #1353 to changelog.
---------
Co-authored-by: Barry Jackson <barjac@mageia.org>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Mooneer Salem <mooneer@gmail.com>
* Update Hamlib to 4.7.1.
* Add PR #1314 to changelog.
* Work around SmartSDR race condition on connect.
* Ensure that radio gets frequency change on start.
* Revert previous changes, didn't seem to fix the problem.
* We'll need to suppress up to the first two frequency/mode updates.
* Revert "We'll need to suppress up to the first two frequency/mode updates."
This reverts commit e537d92e8a.
* Make frequency and mode changes more atomic.
* Revert "Make frequency and mode changes more atomic."
This reverts commit 31e45b8224.
* Prevent frequency update timer from firing during initial frequency/mode setting.
* Update frequency/mode on connection start.
* Add bugfix to changelog.
* Temporarily disable all but Windows CI builds for testing.
* Add logic to Windows CI build to sign with remote USB token.
* Temporarily disable ARM build to reduce runtime.
* Fix syntax errors.
* Fix another syntax error.
* Add forgotten pipe symbol.
* Fix SSH tunnel specification.
* Use full path to SSH key.
* Add separate SSH_USER secret for configuring SSH username.
* Need to create .ssh folder.
* Need to specify port for ssh-keyscan.
* chmod 600 private key.
* Need to pass -N to ssh to keep tunnel up.
* Create SSH tunnel just prior to building.
* Explicitly specify localhost for port forward hostname.
* Keep SSH connection alive.
* Ran into known segfault issue on 24.04.
* Update pkg-config.
* Kill SSH after completion of build.
* Revert "Temporarily disable ARM build to reduce runtime."
This reverts commit db1cee1ce9.
* Add macOS/Linux and GH Action info to documentation.
* Revert "Temporarily disable all but Windows CI builds for testing."
This reverts commit 4b76d359f3.
* Add additional information to documentation about remote USB keys.
* Add code signing documentation link to README.
* Add PR #1312 to changelog.
* Add support for signing with a second certificate.
* Fix typos.
* Ensure installer components get secondary signed too.
* Fix spurious codec2-related signing error.
* Fix sudden compilation errors related to Opus.
* Revert unintended ccommit.
* Include rade_api after Opus to ensure correct config flags exist.
* Fix remaining x86_64 compiler errors.
* Add PR #1299 to changelog.
* Remove Speex in favor of RNNoise.
* Fix Linux compiler errors.
* Fix clang-tidy failures.
* Additional compiler error fixes.
* Add --enable-x86-rtcd for non-macOS builds as well.
* Add PR #1276 to changelog.
* Clarify in Filter dialog that NR is during TX.
* Should not divide/multiply by SHRT_MAX.
* Remove missed Python initialization logic from initial C port.
* Ensure line appears at y=0 on plots when fully silent.
* Change offset so that the zero line is right at y=0.
* WIP integration of radae_nopy.
* Use tmiw fork of radae_nopy.
* Add additional unit test debugging.
* Update to reflect making RADE a shared library again.
* Fix Windows installer generation.
* TBD: Disable Windows reporting test as Python isn't available for mock rig.
* Remove rade_integ.
* Remove Python from binary builds.
* Forgot to remove rade_integ from lint.
* Additional CI build fixes.
* More build fixes.
* Fix Flex/KA9Q compiler errors.
* Attempt to fix macOS tests.
* Force Homebrew macOS.
* Try venv for macOS.
* Fix remaining macOS test failures.
* Python is actually on the GitHub runner, let's see if RADE Reporting test will work.
* Update documentation and add PR #1251 to changelog.
* Enable Linux AppImage builds for Profile Guided Optimization (PGO).
* Fix typo.
* Fix another typo.
* oops, need to install pulseaudio.
* Need to set PYTHONPATH.
* Make sure dbus is installed.
* Don't strip symbols (debugging).
* Some fixes that should hopefully reverse performance regression.
* Enable temporal-profile.
* Use lld for linking instead.
* Add PR #1173 to changelog.
* Enable PGO for macOS DMG builds.
* Don't use LLVM Clang.
* Revert macOS PGO changes.
* Use -O3 for AppImages.
* Have CMake add PGO flags.
* Enable PGO again on macOS.
* Fix typos.
* Force Apple ld.
* Make absolutely sure we're using Apple ar and ranlib.
* Use Release for DMG build.
* Enable verbose build output for debugging.
* Force /usr to be first in PATH.
* Force LLD linker.
* Oops, need CMAKE_LINKER_TYPE instead.
* Use same Clang as in lint.
* Override ar path.
* AppleClang on macOS 26 supports PGO.
* Need to install Homebrew LLVM for profdata.
* Try deferring LLVM 19 install until time to run profgen.
* LLVM without LTO.
* Adapt use of libtool from LLVM.
* Try forcing libtool usage in Codec2 too.
* Disable verbose build.
* Explicitly pass CMAKE_AR and CMAKE_RANLIB into dependent projects.
* Fix typo.
* Use LLVM 20 instead of 21.
* Ensure all macOS dependencies use -O3 and 11.0 min.
* Cache Python generation during macOS build.
* Fix typos.
* Revert previous changes.
* Make sure FreeDV Reporter window is visible during PGO data collection.
* Fix waterfall rendering issue with multiple plots displayed at once.
* Disable PGO on macOS except for official releases.
* Revert logging previously committed.
* Linux: test -O3 only, no PGO.
* UdpHandler: fix crash when unable to resolve DNS.
* Revert "Linux: test -O3 only, no PGO."
This reverts commit 26da306b48.
* Revert "Disable PGO on macOS except for official releases."
This reverts commit a7cc6852db.
* Allow DMG generation to run during lint.
* Ensure debug symbols are enabled even for Release builds.
* Linux: allow AppImages to build during lint.
* Add documentation for building with PGO.
* macOS: Try performing non-universal instrumented build to improve CI performance.
* Enable LTO for macOS DMG build.
* Revert "Enable LTO for macOS DMG build."
This reverts commit 6e54a1c39d.
* Another attempt at enabling LTO for macOS.
* Revert "Another attempt at enabling LTO for macOS."
This reverts commit 60080db6b2.
* Upgrade MinGW LLVM to 20251216.
* Experiment: collect profiling data for legacy modes as well.
* Disable PGO on macOS due to long build times.
* No difference in CPU usage when profiling legacy modes, so just profile RADE.
* Forgot to change utmode back to RADEV1.
* Add button to record decoded audio.
* Fix TSan bug discovered in a merged PR's build.
* Make Record buttons horizontal.
* Add additional Tools menu option for decoder recording.
* Consolidate all Record logic to single button.
This commit does the following:
* Removes all Tools->Start Record File... options from menu bar.
* Reverts back to single Record button on main window.
* Record button now pops up file dialog with additional controls for raw/decoded recording.
(default raw recording)
* Remove Quick Record options as they are no longer necessary.
* Revert "Remove Quick Record options as they are no longer necessary."
This reverts commit 0d0c069d48.
* Add additional config option for decoded recordings.
* Replace file chooser with simpler record setup dialog.
* Remove unused config items.
* Add PR #1145 to changelog.
* Build LAME and mpg123 into FreeDV version of libsndfile.
* Add MP3 format as option for recording.
* Update control labels.
* Fix non-macOS build.
* Fix mpg123 build as well.
* Fix Windows build.
* Disable MP3 support if system sndfile doesn't support it.
* Need to invert test.
* Try regenerating autoconf files for mpg123 to work around Windows build failure.
* Need libltdl-dev for autoreconf to work.
* Disable MP3 recording when recording raw audio.
* Swap ordering of filters for the voice keyer dialogs.
* Allow voice keyer to be turned on during TX.
* Allow voice keyer file to be selected during TX.
* Default suffix to drop-down list entry or FreeDV Reporter selection.
* Revert "Swap ordering of filters for the voice keyer dialogs."
This reverts commit a504063ff2.
* Try installing git from Homebrew to work around macOS CI problem.
* Revert "Try installing git from Homebrew to work around macOS CI problem."
This reverts commit e4cdeb47f1.
* Force not retrieving submodules.
* Explicitly disable submodule recursion.
* Try macos-26 for lint.
* Uninstall Homebrew git due to libiconv problems.
* GHA: Try forcing PulseAudio to 48000 Hz sample rate.
* Fix syntax errors.
* Experiment: try building AppImages with LLVM instead of gcc.
* Oops, accidentally deleted something I shouldn't have.
* Fix accidental word wrap.
* Fix again.
* Try to work around compiler error.
* Use system zlib for Linux wxWidgets.
* Add clarifying comments.
* Update integration READMEs to use rade_integ_src.
* Add PR #1149 to changelog.
* Make sure audio doesn't suspend on idle.
* Try alternative method of screenshotting.
* Try another way of starting screen capture tool.
* Only take screenshot if failed.
* Only pass outbound audio if all samples available.
* Revert "Only pass outbound audio if all samples available."
This reverts commit 6aa73f3e36.
* Upgrade built-in Python to 3.14.0.
* Need to update GH environment for Windows Python 3.14.
* Forgot to adjust path for pip.
* Additional forgotten change.
* TEST ONLY: Use non-main for RADE.
* Use Python 3.14 for AppImages.
* Need to exclude 3.14 DLL during installer step.
* Update ASAN suppressions for 3.14.
* Revert "TEST ONLY: Use non-main for RADE."
This reverts commit 14b711b5a9.
* Use rade_src instead of rade_integ_src.
* Update AppRun scripts.
* Upgrade custom PyTorch macOS wheel to 2.9.1 and Python 3.14.
* PYTHONOPTIMIZE doesn't seem to work on macOS now.
* Apparently PYTHONOPTIMIZE was in there twice.
* Reenable PYTHONOPTIMIZE, disable built-in mimalloc.
* Disable mimalloc in GH Actions as well.
* Try reenabling mimalloc just for Linux.
* Add PR #1109 to changelog.
* Remove mimalloc altogether.
* Forgot to clean up mimalloc code in source files.
* Lock PyTorch release inside GH Actions.
* Set thread names for additional threads in system.
* Fix linting errors.
* Add additional thread names for Mac and Windows.
* Use const reference for SetThreadName.
* Fix more linting errors.
* Fix PortAudio compiler error.
* Add missed thread names.
* VOX tone atomic doesn't need seq_cst.
* Only wake up non-RT playback thread if FIFO is less than half full.
* Only wake up the TX/RX threads after all audio received.
* Optimized RADE is only for radio integrations.
* Add missed changes.
* Need to build integ in order for lint to work.
* remove invalid target.
* Fix additional Linux compiler failures from previous changes.
* Additional compiler fixes.
* Exclude duplicate tests.
* Fix macOS CI failure.
* Force all compiler warnings to report as errors.
* Fix missed errors.
* Additional Linux and Windows compiler fixes.
* Additional macOS audio compiler error fixes.
* Fix Windows build once and for all.
* Fix remaining uninitialized warnings.
* Fix data race in Socket.IO handling.
* We want to immediately fail when running sanitizers, not re-attempt tests.
* Revert accidental removals in macOS CI config.
* Add PR #1076 to changelog.
* Reorganize FlexRadio integration so we can share code with KA9Q console app.
* Fix rtkit file path.
* Use same variable for both static and non-static Speex DSP library.
* Update Linux CI to reflect new paths.
* Refactor more common code for use by other integrations.
* Create skeleton KA9Q appplication, need to read/write from/to stdin/stdout to get basics up.
* Need to link against fdv_os_wrapper in common.
* Actually fix Linux linker failure in Flex waveform.
* Allow software name to be passed into ReportingController.
* Read audio from stdin and write to stdout.
* Fix crash on shutdown due to threads not being freed.
* Add pauses to make sure audio is handled live (i.e. not faster than RT).
* Add command line options to freedv-ka9q tool.
* Flesh out ka9q README.
* Clean up AppImage generation and enable CI for KA9Q integration.
* Add missed speex dependency.
* Forgot to change references to APPEXEC.
* Fix app paths for AppImages.
* Force AppImage file name.
* Use separate desktop files to avoid needing to override linuxdeploy.
* Use echo instead of ls for AppImage name generation.
* Fix test-appimage and enable verification on ARM targets.
* Need to use pattern, not glob.
* Need to use step ID.
* More fixes.
* Re-add accidentally deleted ./ from Fedora container execution.
* Add arm64 Fedora testing.
* Use RADE main again as a test.
* Revert "Use RADE main again as a test."
This reverts commit 60559ef0bc.
* Switch to raw file I/O.
* Update command line usage message.
* Add PR #1066 to changelog.
* Fix compiler error.
* Report RX only to FreeDV Reporter to indicate we can't TX.
* Fix crash on shutdown.
* Actually have audio process live.
* Fix typo in build_linux.sh.
* Enable ThreadSanitizer checks for CI builds.
* Make sure we're not actually checking for test results with tsan.
* Enable sanitizers on 22.04 and ARM runners.
* Suppress sanitizer errors in Ubuntu 22.04.
* We probably need Clang 22 to have Ubuntu 22.04 RTsan tests work properly.
* Use LLVM 22 for ASAN too to see if that will suppress the final leaks.
* Add missed lock in onRecvEnd.
* [no-ci] Update documentation.
* [no-ci] Further tweaks to user manual wording.
* Create infrastructure to build freedv-flex binaries.
* Begin porting some ezDV Flex files to freedv-gui.
* Do not build Flex waveform for Windows.
* Port FlexVitaTask from ezDV, link to main() to print available radios.
* Fix Linux compiler error.
* Disable mimalloc for Flex waveform.
* Port FlexTcpTask from ezDV.
* Add beginning of initialization logic for waveform.
* Set up IRealtimeHelper for Flex waveform.
* Adjust FIFO usage to match what FlexVitaTask expects.
* Add linkage between TCP and VITA tasks.
* Use correct FIFO size calculation.
* Force single-threading for PyTorch/numpy.
* We don't need verbosity for RADE.
* Need to let the VITA task know about the radio IP too.
* Enable rtkit.
* Use rtkit for FlexVitaTask too.
* Fix issue causing minPacketsRequired_ to continually increase.
* Adjust MAX_VITA_SAMPLES to reflect no longer doing resampling itself.
* Fix spelling mistake.
* Update comment.
* Try previous TX scale factor to make a TX level 100 = ~100W.
* Tweak TX scale factor so we don't actually overdrive the signal.
* Don't build waveform by default.
* Enable AppImage generation for waveform.
* Update wrong script reference in CI build.
* Use correct filename generated by linuxdeploy.
* Warning cleanup.
* Tweaks to hopefully help reduce dropouts.
* timestamp_type defs from Flex SDK didn't work for some reason.
* Make sure we're always sending stuff back to the radio.
* Try ms-disable-python-gc again as it has a ~10% CPU usage reduction on RX.
* Try implementing timestamp type changes from Flex waveform SDK again.
* No difference with unconditional reads.
* Use Semaphore for pausing TX/RX threads.
* Actually eliminate audio dropouts.
* Connect UDP socket to slightly reduce system CPU consumption.
* Fix memory corruption from recent changes.
* Revert "Use Semaphore for pausing TX/RX threads."
This reverts commit cf7d076ef1.
* Normalize incoming audio so that we don't clip when converting to int16.
* Initial support for sending EOO.
* Add 40ms additional silence to ensure SmartSDR fully transmits EOO.
* Add the 40ms of silence elsewhere to avoid interference with regular freedv-gui.
* Add hooks to at least get FreeDV Reporter connections up and running.
* Add spotting support for FreeDV Reporter.
* Update README based on attempting to compile for rPi.
* Send waveform cleanup commands on startup (avoiding duplicate FDVU/FDVL entries in SmartSDR for Mac).
* Forgot to actually use report_wo role for FreeDV Reporter.
* Work around segfault when switchingn away from FDVU/FDVL.
* Fix stuttering issue on beginning TX.
* Integrate AGC to Flex waveform.
* Fix waveform compiler errors.
* Sleep for as long as it takes to find a radio on the network.
* Add support for processing SSDR_RADIO_ADDRESS envionrment variable.
* Fix compiler errors.
* Ephemeral ports for VITA don't actually work.
* Use same version number as FreeDV proper, cleanup FreeDV Reporter init.
* Support reporting the grid square if the radio has a built-in GPS.
* Add Speex noise reduction to TX pipeline.
* Code cleanup.
* Fix deadlock during radio discovery.
* src/os only needs wxWidgets if on Windows.
* Add missing packages for building Flex AppImage.
* GPS updates use a different delimiter than other update types.
* GitHub runner is forcing Ubuntu 24.04 for ARM.
* Revert "GitHub runner is forcing Ubuntu 24.04 for ARM."
This reverts commit e267fe216b.
* Add cleanup and logging to FreeDV Reporter logic.
* Need to capture newGridSquare.
* Bail out on empty grid square.
* Refactor ReportingController to separate file.
* Report RX prior to receiving callsign.
* Generate waveform Docker container.
* Need Docker Buildx action.
* Fix AppImage filename.
* Check for null before trying to report RX.
* Increment to 2.0.3.
* Fix compiler errors from previous merge.
* Fix typo from previous PR.
* Force mimalloc to be built in Release mode.
* Forgot to support universal macOS build for mimalloc.
* Switch Flex container to Ubuntu, install AppImage prerequisites.
* Remove add-apt-repository call.
* Can't rely on using FUSE, try --appimage-extract-and-run.
* Initialize sync_ variable to avoid spurious calls to FreeDV Reporter.
* Do appimage-extract during container build process.
* Extract AppImage prior to running Docker.
* Add debugging to make sure we're deploying the correct contents.
* Include mimalloc config from main FreeDV application.
* Add README for the Flex waveform.
* Fix typos in README.
* Add PR #1018 to changelog.
* Reduce CPU usage in Xwayland process when using AppImage.
* Reduce Xwayland CPU usage in the Spectrum plot as well.
* Have separate avmag arrays for each plot.
* Fix typo from previous PR.
* Avoid duplicate MoveToPoint calls.
* Remove spinlock for RX spectrum.
* Spectrum plot: reduce the number of lines drawn without affecting visual quality.
* Experiment: disable arch-specific optimizations for mimalloc.
* Use 5Hz steps.
* Fix typos in spectrum plot calculation.
* From Radio and similar: Use single filled path to represent plot.
* Remove 1 dB minimum difference requirement for Spectrum plot.
* Make sure spectrum plot arrays are cleared on start.
* Warning cleanup.
* Reenable mimalloc optimization flags for Macs.
* Use GenericFIFO for scalar plots.
* Reduce the amount of gray rendered in waterfall before actual RF spectrum is shown.
* Don't redraw text on Spectrum plot unless necessary.
* Add PR #1064 to changelog.
* Don't force Xwayland on AppImage.
* Add Xwayland instructions to Troubleshooting section of manual.
* Reduce memory allocations in main thread.
* Cache configured FreeDV Reporter colors.
* Move capture into FreeDV Reporter GUI handlers.
* Further constant cleanup in FreeDV Reporter.
* Try disabling mimalloc to see if it helps the macOS tests run.
* Revert "Try disabling mimalloc to see if it helps the macOS tests run."
This reverts commit 81a20cbd3f.
* Define strings inside respective objects to hopefully avoid minmalloc-related crash on macOS.
* Make const strings member variables.
* 25% reduction in allocations by waterfall rendering code.
* Further memory allocation reduction in the waterfall plot.
* FreeDV Reporter: reduce allocations during handler processing.
* Only save callsign to wxString if non-empty.
* ebur128 should be compiled in release mode.
* Add PR #1035 to changelog.
* Don't wait for extended tests to finish to test the AppImage.
* Switch AGC implementation to WebRTC.
* Forgot to check in files.
* Add PR #1024 to changelog.
* WebRTC only supports a limited set of sample rates.
* inMicLevel needs to be 0.
* Forgot some calls to make AGC work.
* Unconditionally enable AGC setting in Filter window.
* Test to increase AGC level.
* Adjust target level so that peaks are +/- 0.4.
* Reduce target level a bit.
* Revert "Reduce target level a bit."
This reverts commit 6282992544.
* Add 4dB pad after AGC.
* More tweaks.
* First pass at AGC implementation using libebur128.
* Try defining CMAKE_POLICY_VERSION_MINIMUM to get around GH build error.
* Swap attack/release naming to match actual definitions.
* Equalizer and speech in plotting should be based on pre-AGC audio.
* Warning cleanup.
* Fix CMake issues on ebur128 in GitHub environment.
* Avoid overshooting target gain.
* Remove CMake debugging.
* current = target AGC check not 100% correct, so don't bother.
* Set limiter level to -1 dB.
* Switch voice keyer button label based on state.
* Add 'Switch to' to beginning of Analog/Digital button.
* User manual update.
* Only update Voice Keyer button on state transitions.
* Revert "Equalizer and speech in plotting should be based on pre-AGC audio."
This reverts commit 206a4d4fcb.
* To Spkr/Hdphns -> Frm Decoder.
* Add 'Modem' to Start/Stop button label.
* all.wav is too long for rade_reporting_mpp, use shorter TX file to improve pass rate.
* Increase silence threshold to -33 LUFS.
* Oops, speech out plot should be before equalizer.
* g_agcEnabled needs memory_order_release on modification.
* Suppress monitor audio from 'From Decoder' plot during TX.
* Add tooling to enable debugging of hung tests.
* Force rebuild.
* Revert "Force rebuild."
This reverts commit 6f13e7382b.
* Add five minute timeout for unit tests.
* Fix max time calculation and increase to 10mins.
* Increase timeout to 20 minutes.
* We were actually calculating the counter wrong.
* Use atomics for UT related globals.
* Force build for more testing.
* Revert README change.
* Add retry logic for hdiutil due to known bugs.
* Encode EOO as a single unit.
* Revert GitHub debugging.
* Add PR #1023 to changelog.
* Remove space between number and 'dB'.
* Linux: redraw mic/speaker level slider on update to ensure it remains in sync.
* Add PR #1021 to changelog.
* Make sure redraw happens on some environments.
* Revert accidental change to RADE build config.
* Use rigerror2() for friendlier Hamlib errors.
* Try GH mirror of Opus.
* Make sure we don't use rigerror2() for Ubuntu 22.04.
* Add PR #1020 to changelog.
* Don't write UT features until the end of TX/RX.
* Attempt 2 at preventing spurious Linux asan failures.
* Add PR #975 to changelog.
* Revert "Attempt 2 at preventing spurious Linux asan failures."
This reverts commit 8f53d1a980.
* Another attempt at preventing spurious asan failures.
* Revert back to k6aq.net hosted wheels.
* Resolve warnings in pipeline tests.
* ResampleStep: skip processing if no samples available.
* TapStep: execute in separate thread.
* Fix issue causing mic audio to stop when using Speex.
* Add a bit more time between loads.
* Use -O3 for libsamplerate to see if that helps.
* Revert "Add a bit more time between loads."
This reverts commit 1273d6531e.
* Disable content caching during CI build.
* Add printout of sysctl for debugging.
* Try speexdsp resampling to see if we can reduce CPU usage.
* Slightly increase quality.
* Increase quality again.
* Fix monitor functions not producing audio.
* Reenable Instruments tracing.
* Experiment: update librade to grab sync and SNR while running RX.
* Update SNR retrieval to make sure it happens on RX thread.
* Bump up resample quality again.
* Go back to libsamplerate.
* Use same semaphore wait time calculation for macOS as with other platforms.
* Try 20ms time quantum.
* Try 40ms.
* Back to 60ms.
* Wait needs to be based on start of work.
* Revert "Go back to libsamplerate."
This reverts commit 86d1c640ff.
* Try maximum quality on speex resampler first.
* Go back to calling fwrite() immediately on FIFO read.
* Revert resampler changes, again.
* Try experimental RADE branch again.
* Out of left field: try 2.9ms quantum like what Chrome uses.
* Improve reliability of Linux rade_loss test.
* Smooth out longer than expected semaphore waits on macOS.
* Fix compiler errors.
* Put quantum back to 60ms.
* Fix compiler error.
* More experimentation with time quantums.
* Use relaxed atomic semantics for macOS worker counter.
* Back to 2.9ms due to mpp test failures.
* Disable processing stats.
* Time quantum should match buffer size.
* Remove unneeded variable.
* Time quantum was accidentally getting set to 0.
* Try to reduce standard deviation for macOS wait time.
* Revert previous change, try just halving the wait time.
* Try to reduce likelihood of scheduler contention on macOS.
* macOS: Set lower thread QoS for non-audio threads.
* Using infinite wait for ThreadedObject.
* Force lowest possible latency.
* We can reference the activity ID directly.
* Avoid crash on stop from previous changes.
* Revert recent PulseAudioDevice changes in case those are causing 22.04 tests to fail.
* Try different macOS flag to improve responsiveness.
* Remove memset call from TX handling.
* Disable real-time threading on macOS.
* Use setiopolicy_np() to make sure writing RADE features doesn't interfere with the rest of the app.
* Resample input file for rade_loss test to lower CPU usage.
* Try soxr resampler for further CPU usage reductions.
* Forgot missed file.
* On macOS CI runs, we should also use the Homebrew soxr package.
* Revert soxr adoption, does not meet real time safety guidelines.
* Try deferring feature file writes until the end again.
* Turn on PYTHONOPTIMIZE.
* Read/write entire blocks from FIFO, not just single samples.
* Warning cleanup.
* Allow partial output if FIFO gets empty.
* Remove unneeded memset().
* Fix race condition preventing user from properly being hidden from FreeDV Reporter on startup.
* Downgrade additional pipeline threads to Utility QoS.
* Try malloc-free FIFO for RADE steps.
* Use 2048 samples instead.
* Use PreAllocatedFIFO in RADE steps to avoid cache misses.
* Use MKL enabled version of numpy for Intel macOS.
* Try Intel MKL version of PyTorch for macOS.
* Fix GH compiler issue on macOS ARM.
* Replace sleep_for with semaphore for TapStep.
* Only signal semaphore every 100ms like with previous sleep_based impl.
* Replace additional sleeps with semaphore waits.
* Fix compiler error.
* Adjust timing thresholds for dumping feature debug data.
* macOS: reenable real-time threading as a test.
* Make sure both RX and TX threads start processing at the same time.
* Update missed shared_ptr reference.
* Remove hidden allocation due to use of lambdas.
* Undo FIFO size reduction.
* Suppress spurious PlaybackStep completion messages.
* Fix CI compiler error.
* Use Time Profiler to get a better idea as to why RADE steps intermittently take longer to execute.
* g_voice_keyer_tx should use acquire/release.
* Revert "Use Time Profiler to get a better idea as to why RADE steps intermittently take longer to execute."
This reverts commit 711f83be0c.
* Only grab TX status once through the GUI timer.
* Only get sync once per timer run.
* Remove use of wxThread from TxRxThread.
* Use relaxed for retrieving sync status.
* Test: disable Mic In plot.
* Try using relaxed memory ordering.
* Revert "Use relaxed for retrieving sync status."
This reverts commit 364bc62e8c.
* Revert "Try using relaxed memory ordering."
This reverts commit bac5a8a799.
* One more attempt at using Speex resampler.
* Add optimizations for PlotScalar in case it's impacting test runs.
* Reenable lower quality level for plots.
* Try quality level 6.
* Actually fix spurious playback complete log messages.
* Back to quality level 10.
* macOS: Begin wait from end of work.
* Try DISPATCH_TIME_FOREVER.
* Revert "Try DISPATCH_TIME_FOREVER."
This reverts commit a913e8573e.
* Revert "macOS: Begin wait from end of work."
This reverts commit 7c719a3e3c.
* Add crazy hack to inhibit the UI thread while the pipeline is executing.
* Try checking pipeline spinlock every time we have to redraw something.
* Try actually sleeping instead of yielding.
* Revert crazy hack.
* Use separate RX thread instead of ThreadedTimer.
* Begin splitting GUI timer work into separate timers.
* Only update sync and TX state on the timers that need it.
* Defer item updates until highlights are updated.
* Delete accidentally added files.
* Try smaller block sizes.
* Try bigger block size for comparison.
* Re-disable real-time threading.
* Preallocate what we need to output RX/TX features.
* No need to duplicate bitmap to draw onto graphics context. (Reduces number of mmap() calls req'd on macOS.)
* Reenable real time threading.
* Force 50ms time quantum regardless of buffer size.
* Update reporting timers to attempt to guarantee that only one is active at a time.
* Add safety offset to BlackHole virtual audio device.
* WIP: Reduce CPU usage in PlotWaterfall.
* Fix compiler errors and rendering bugs.
* Fix compile error for real this time.
* Don't update FreeDV Reporter window if it's not actually visible.
* Back to 60ms time quantum.
* Back to 50ms.
* Slightly adjust how IsShownOnScreen() suppresses updates.
* Just use an array instead of map for PlotScalar.
* Prevent propagation of changes to FreeDV Reporter window unless something actually changed.
* Tweak Speex resampler quality again.
* Resample level 7.
* Don't need to recreate ThreadedTimer thread every time we need to restart.
* Try not running xctrace to see if we're close to fixing the issues.
* Wait a bit more time between loop iterations when playing UT recordings.
* Revert "Try not running xctrace to see if we're close to fixing the issues."
This reverts commit decff7a5b2.
* Add Time Profiler to xctrace files.
* Make all FreeDV Reporter rows invisible when window is not visible.
* Make FreeDV Reporter object synchronous.
* Add support for queuing on parent object thread instead of own.
* Fix Linux segfault.
* Use macOS Dispatch for ThreadedObject.
* Try disabling threading in TapStep.
* Reenable threading for TapStep.
* More quality level tweaking.
* Re-disable separate threading.
* Only allocate memory for feature storage if necessary.
* Use GCD for TapStep.
* Fix compiler error on Linux.
* Tweak maximum sizes of FIFOs based on recorded max usage during ctests.
* Additional adjustments to FIFO sizes.
* More tweaks of FIFO sizes for Linux.
* Disable workflow telemtry for macOS runs.
* Fix syntax error.
* Revert "Use GCD for TapStep."
This reverts commit e1522a7ab3.
* Fix memory violations when using PlotScalar.
* Fix rendering bugs from previous optimization.
* Try only returning numInputSamples at a time from vocoders.
* Revert src/pipeline to last passed build.
* Quality level 8 works better locally.
* Try 40ms blocks on macOS.
* Reduce the number of context switches while handling FreeDV Reporter traffic.
* Try reducing FIFO sizes again.
* Try reverting PyTorch upgrade.
* Didn't fully revert PyTorch changes.
* SoX is ignoring errors from Core Audio, use buffer sizes known to work.
* SoX divides by 8 to produce frame size sent to CoreAudio.
* Reset resampler back to last known working level.
* Update Linux/macOS audio code to match Windows implementation more closely.
* Try 40ms blocks again.
* Add middle click reset support for speaker/mic level.
* Revert "Try 40ms blocks again."
This reverts commit 3ca16e0335.
* Have FreeDV itself load test.wav due to performance limitations in GH environment.
* GitHub Actions: Disable iCloud (!)
* Need to set config value and not the slider (middle-click).
* Disable xctrace collection.
* Disable mic/speaker level slider unless modem is active.
* Return to libsamplerate for ResampleStep.
* MacAudioDevice cleanup.
* Remove unneeded warning message.
* Need memory_order_acquire for legacy sync state.
* Try RADE main branch again.
* Debugging: see if anything else is running that shouldn't be.
* GitHub: disable Spotlight too.
* Fix typo in README.
* Reenable macOS runner debugging.
* Include mimalloc for a bit extra boost.
* Disable mimalloc ctests.
* Disable macOS debugging again.
* mimalloc wasn't actually being used on macOS.
* mimalloc: decrease purge interval.
* Fix hidden memory allocation during TX output handling.
* Fix additional hidden memory allocations.
* Unit test: make sure rade_loss shows sync state.
* More hidden memory allocation removals.
* Further reduce duplicate memory allocations.
* Fix voice keyer bug reported by @barjac.
* More cleanup of unneeded allocations.
* Fix mini versions of scalar plots (discovered during testing).
* Remove some wxAsyncCallEventFunctor instances from gprof profile.
* Fix compiler error.
* Additional refactoring and memory allocation reduction.
* Extend purge delay a bit just in case.
* Allow GitHub Actions to re-execute test in case of an intermittent failure.
* Fix typo in rade_reporting test.
* Minor reduction in allocations during FreeDV Reporter RX handling.
* Use std::atomic for PlaybackStep.
* Revert "Use std::atomic for PlaybackStep."
This reverts commit 0ee65a38eb.
* Return nullptr to PlaybackStep if not actively playing.
* PlaybackStep: wait for main thread to finish stopping TX instead of previous approach.
* Fix rendering issue going between TX and RX.
* Fix issue where VK monitor plays previously TX audio prior to current VK cycle.
* Fix segfault in Hamlib on pressing Stop.
* Add missed destroying check while setting PTT.
* Additional cleanup in rig_control due to previous commits.
* Prevent highlights from being updated if already deleted.
* Try Cleared() instead of ItemDeleted() due to weird redraw behavior on macOS.
* Fix race condition preventing user from properly being hidden from FreeDV Reporter on startup.
* No need to have libgit_version be dynamic.
* Force deselection of any newly selected rows if a user disconnects.
* Add potential workaround for Linux users and random selections.
* Partial revert of refresh deselection.
* EVT_MOTION isn't recognized on Windows for wxDataViewCtrl, suppress random highlight fix for it and macOS.
* Add PR #993 to changelog.
* Fix warning messages on startup when using wxWidgets 3.3.
* Fix warnings in Filter dialog.
* Finally fixed main window sizing issues.
* Update Windows/macOS wxWidgets patch for 3.3.
* Make explicit various codec2 dependencies to avoid compile race condition.
* Add PR #957 to changelog.
* No need to use build_rade as the dependency if we're using rade.
* Forgot to check in a change.
* Looks like we need the larger FIFO after all.
* Use SRC_SINC_FASTEST for plots.
Should be low to no-impact as previous RADE testing showed only a slight quality
decrease vs. SRC_SINC_MEDIUM_QUALITY.
* Update changelog.
* Back to SRC_LINEAR.
* Update comments.
* Don't fail fast for Linux builds.
* Add libsamplerate deps where appropriate.
* Add sndfile deps.
* Revert "Add sndfile deps."
This reverts commit dc00a3b7cd.
* Revert "Add libsamplerate deps where appropriate."
This reverts commit 65c4766c20.
* Reenable processing stats.
* Try building with -O3.
* Try building using LTO.
* Revert "Try building using LTO."
This reverts commit 2536a15dd2.
* Revert "Try building with -O3."
This reverts commit 8b9b824a88.
* Revert "Reenable processing stats."
This reverts commit 5b0d31b1a2.