GUI Application for FreeDV – open source digital voice for HF radio
 
 
 
 
 
 
Go to file
drowe67 15e5da5dd4 latest user manual PDF 2021-08-05 21:51:12 +00:00
.github/workflows Update packages used for build task. 2021-03-22 21:39:50 -07:00
cmake Use correct PortAudio download URL for bootstrapping. 2021-07-30 17:06:04 -07:00
contrib multiple panes figure 2021-01-13 06:02:00 +10:30
db Rename fdmdv2 to freedv. 2015-08-13 13:07:43 +00:00
docker --build for just small changes to scripts, --rebuild to re-install everything 2021-05-15 12:44:19 +09:30
script initial demo spotting script 2015-09-15 02:34:28 +00:00
src Partially revert designEQFilters() changes that aren't necessary for leak control. 2021-08-03 00:12:49 -07:00
wav 800xa example 2020-12-28 11:09:59 +10:30
.travis.yml Update Ubuntu Travis instance to Bionic (18.04 LTS). 2020-12-12 23:19:17 -08:00
CMakeLists.txt Add 'make dist' target to enable source releases per #150. 2021-08-04 00:13:15 -07:00
COPYING Rename fdmdv2 to freedv. 2015-08-13 13:07:43 +00:00
README.md Remove unneeded libc6-i386 package from build instructions. 2021-05-26 02:42:47 -07:00
README.osx Use MacPorts portaudio instead of building our own. Patch file and cmake bindings still exist for those who prefer the latter. 2021-05-26 01:04:06 -07:00
USER_MANUAL.html latest user manual PDF 2021-08-05 05:29:28 +00:00
USER_MANUAL.md Fixed typo in the changelog. 2021-08-04 22:26:57 -07:00
USER_MANUAL.pdf latest user manual PDF 2021-08-05 21:51:12 +00:00
build_linux.sh getting ready for merge 2020-12-20 08:31:17 +10:30
build_osx.sh Use MacPorts portaudio instead of building our own. Patch file and cmake bindings still exist for those who prefer the latter. 2021-05-26 01:04:06 -07:00
build_windows.sh Forgot to create directory when not doing a bootstrap build. 2021-05-11 10:13:11 -07:00
build_windows_old.sh script to build old windows versions, with zip file output. Useful for testing 2019-06-03 06:57:46 +09:30
configure_speexdsp_osx.sh Add missed BUILD_OSX_UNIVERSAL checks. 2020-11-15 21:35:20 -08:00
configure_speexdsp_osx_universal.sh Add missed BUILD_OSX_UNIVERSAL checks. 2020-11-15 21:35:20 -08:00
patch-samplerate.diff Have OSX build staticly link everything but Codec2 and LPCNet. This is needed to guarantee minimum OSX version of 10.9 and usage of libc++ by wxWidgets. 2019-08-11 03:42:14 -07:00
portaudio-macos.patch Update PortAudio patch to reflect version macOS SDK 11.3. 2021-05-25 23:52:04 -07:00

README.md

Building FreeDV GUI

This document describes how to build the FreeDV GUI program for various operating systems. FreeDV GUI is developed on Ubuntu Linux, and then cross compiled for Windows using Fedora Linux (Fedora has great cross compiling support) and Docker.

Further Reading

Building on Ubuntu Linux (16-20)

$ sudo apt install libspeexdsp-dev libsamplerate0-dev sox git \
libwxgtk3.0-gtk3-dev portaudio19-dev libhamlib-dev libasound2-dev libao-dev \
libgsm1-dev libsndfile-dev cmake module-assistant build-essential
$ git clone https://github.com/drowe67/freedv-gui.git
$ cd freedv-gui
$ ./build_linux.sh

(For Ubuntu 20.04 the wxWidgets package is named libwxgtk3.0-gtk3-dev.)

Then run with:

$ ./build_linux/src/freedv

Note this builds all libraries locally, nothing is installed on your machine. make install is not required.

Building on Fedora Linux

$ sudo dnf groupinstall "Development Tools"
$ sudo dnf install cmake wxGTK3-devel portaudio-devel libsamplerate-devel \
  libsndfile-devel speexdsp-devel hamlib-devel alsa-lib-devel libao-devel \
  gsm-devel
$ git clone https://github.com/drowe67/freedv-gui.git
$ cd freedv-gui
$ ./build_linux.sh

Then run with:

$ ./build_linux/src/freedv

Installing on Linux

You need to install the codec2 and lpcnetfreedv shared libraries, and freedv-gui:

$ cd ~/freedv-gui/codec2/build_linux
$ sudo make install
$ cd ~/freedv-gui/LPCNet/build_linux
$ sudo make install
$ cd ~/freedv-gui/build_linux
$ sudo make install
$ sudo ldconfig

Generating Debian packages

To generate a Debian/Ubuntu package, simply run the "cpack" command after running "make". The resulting .deb file can then be installed by running "dpkg -i" (once Codec2 and LPCNet packages are also installed).

Testing

The wav directory contains test files of modulated audio that you can use to test FreeDV (see the USER_MANUAL).

Building for Windows using Docker

The Windows build process has been automated using a Docker container, see the freedv-gui Docker README.

Building for Windows on Fedora (Cross compiling)

Install basic MinGW development packages:

  $ sudo dnf install mingw{32,64}-filesystem mingw{32,64}-binutils \
    mingw{32,64}-gcc mingw{32,64}-crt mingw{32,64}-headers mingw32-nsis

Install dependencies of FreeDV/Codec2:

  $ sudo dnf install mingw{32,64}-speex

Enable Freetel specific packages not currently in Fedora proper:

  $ sudo dnf install dnf-plugins-core
  $ sudo dnf copr enable hobbes1069/mingw
  $ sudo dnf install mingw{32,64}-wxWidgets3 mingw{32,64}-hamlib \
    mingw{32,64}-portaudio mingw{32,64}-libsndfile mingw{32,64}-libsamplerate.noarch

Clone freedv-gui:

  $ cd
  $ git clone https://github.com/drowe67/freedv-gui.git

Building FreeDV for 64 Bit windows:

  $ cd ~/freedv-gui
  $ ./build_windows.sh
  $ cd build_win64
  $ make package

OR Building FreeDV for 32 Bit windows:

  $ cd ~/freedv-gui
  $ CMAKE=mingw32-cmake ./build_windows.sh
  $ cd build_win32
  $ make package

Testing Windows Build

Conveniently, it is possible to run Windows executables using Wine on Fedora:

Testing LPCNet:

  $ cd ~/freedv-gui/LPCNet/build_win/src
  $ WINEPATH=$HOME/freedv-gui/codec2/build_win/src';'$HOME/freedv-gui/build_win/_CPack_Packages/win64/NSIS/FreeDV-1.4.0-devel-win64/bin/ wine lpcnet_enc.exe --infile all.wav --outfile all.bit
  $ WINEPATH=$HOME/freedv-gui/codec2/build_win/src';'$HOME/freedv-gui/build_win/_CPack_Packages/win64/NSIS/FreeDV-1.4.0-devel-win64/bin/ wine lpcnet_dec.exe --infile all.bin --outfile all_out.raw
  $ cat all_out.raw | aplay -f S16_LE -r 16000

Testing FreeDV API:

  $ cd freedv-gui/codec2/build_win/src
  $ WINEPATH=$HOME/freedv-gui/LPCNet/build_win/src';'$HOME/freedv-gui/build_win/_CPack_Packages/win64/NSIS/FreeDV-1.4.0-devel-win64/bin/ wine freedv_rx 2020 ~/freedv-gui/wav/all_2020.wav out.raw
  $ play -t .s16 -r 16000 -b 16 out.raw

Building and installing on OSX

Please see README.osx.

Building and installing on FreeBSD

In build_linux.sh change the build_linux directory to build_freebsd.