blocksize=4800 makes PortAudio hand the RX callback fixed 100 ms blocks, so received audio sits in the input buffer for up to 100 ms before the demodulator can see it, and that delay is paid again on every ARQ turnaround. With blocksize=0 PortAudio delivers whatever is available (small blocks in the 10 to 50 ms range in our measurements), cutting the RX buffering delay to a fraction of the old fixed block. On its own, blocksize=0 also shrinks the negotiated input ring. We measured 40 ms total where blocksize=4800 had negotiated 200 ms on a CM108 USB codec, which makes short processing stalls more likely to drop audio. The explicit latency=0.2 closes that gap: it requests a 200 ms ring built from small periods, so the stream keeps the old depth while gaining the low latency. The explicit ring depth also makes the negotiation deterministic on virtual devices. On snd-aloop (the ALSA loopback used for hardware-free testing) the default "high" latency maps to only two periods. At 100 ms periods that double buffer misses its service deadline on a fixed cycle and the capture stream drops audio continuously from the moment it opens, leaving the modem deaf on that device class. With an explicit depth the same stream runs clean; we measured buffer 12000 frames with 2400 frame periods and zero overflows, identically on two machines. TX stays at blocksize=2400; only the RX side changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| .obs | ||
| documentation | ||
| freedata_gui | ||
| freedata_server | ||
| tests | ||
| tools | ||
| .gitignore | ||
| .prettierignore | ||
| .stignore | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| LICENSE | ||
| README.docker.md | ||
| README.md | ||
| add-osx-cert.sh | ||
| entrypoint.sh | ||
| freedata-nsis-config.nsi | ||
| pyproject.toml | ||
| requirements.txt | ||
README.md
FreeDATA
[!NOTE] Development has slowed due to limited maintainer time.
[!WARNING] Latest release accumulated many changes towards the 0.18.x release, including a new broadcast feature for group chats. If you run into issues, please fall back to the more stable release, v0.17.8.
FreeDATA is a versatile, open-source platform designed specifically for HF communications, leveraging codec2 data modes for robust global digital communication. It features a network-based server-client architecture, a REST API, multi-platform compatibility, and a messaging system.
Please keep in mind, this project is still under development with many issues which need to be solved.
Installation
Please check the wiki for installation instructions Please check the 'Releases' section for downloading precompiled builds
Credits
- David Rowe and the FreeDV team for developing the modem and libraries - FreeDV Codec 2 : https://github.com/drowe67/codec2

