This month was spent further improving the audio handling inside freedv-gui. The rationale for doing so was severalfold:
- To improve reliability of the CI/CD pipeline on certain platforms (namely macOS and Windows),
- To fix reported dropout/resync issues when using virtual audio cables (as commonly done for SDR radios), and
- To reduce the amount of time required to transmit EOO.
This was accomplished via the following code changes:
- Increasing the execution frequency of the receive processing code (from every 20ms to every 10 ms).
- Implementing the native audio APIs for macOS (Core Audio/AVAudioEngine) and Windows (WASAPI) versus using PortAudio.
- Reducing the FIFO sizes used for transmit as they were much too large.
- Updating the CI/CD pipeline to avoid repeatedly rebuilding dependencies (macOS-only).
After implementing the above changes, CI/CD tests became much more reliable on all platforms except x86_64 macOS. Audio dropouts reported by SDR users also decreased significantly, as well as the time to go from TX to RX when in RADE (from ~900ms to ~300ms in local testing). All in all a very good usability improvement, especially for RADE users.
EDIT: I forgot to mention that some FreeDV Reporter connection reliability bugs were fixed as well last month, ensuring that users can quickly be listed on it again in case of network dropouts, etc.
More information can be found in the commit history below:
(Note that all commit logs above were generated with the following command line:)
git log --author="member@email" --after "Month 1, 2025" --before "Month 31, 2025 23:59:59" --all