This repository contains a series of static libraries used by other FreeDV repositories (such as freedv-integrations) to support various functions:
- RADE encode and decode.
- Audio processing (e.g. resampling, AGC and RNNoise, among other actions).
- FreeDV Reporter/PSK Reporter handling (TCP/IP, callsign encoding/decoding in RADE transmissions)
This is intended to be used as a Git submodule, i.e.
project/src$ git submodule add https://github.com/tmiw/freedv-backend backend
...
# inside src/CMakeLists.txt
add_subdirectory(backend)
with required libraries linked in as needed.
This project can be compiled standalone by running cmake:
$ mkdir build
$ cd build
$ cmake ..
$ make
To enable unit tests, you can pass -DBUILD_BACKEND_UNITTESTS=1 to cmake:
$ cmake -DBUILD_BACKEND_UNITTESTS=1 ..
$ make
$ ctest -V
It's highly recommended to also set up a Python venv so that the "loss" tests can be executed (see RADE README):
$ python3 -m venv rade-venv
$ . ./rade-venv/bin/activate
$ pip install torch matplotlib
$ mkdir build
$ cd build
$ cmake -DRADAE_PYTHON_EXECUTABLE=$(pwd)/../rade-venv/bin/python3 -DBUILD_BACKEND_UNITTESTS=1 ..
$ make
$ ctest -V
Please create a GitHub issue if you find a problem with this repository.