GUI Application for FreeDV – open source digital voice for HF radio
 
 
 
 
 
 
Go to file
Richard Shaw 1d76a20d1d Prepare for FreeDV 1.4 release
- Remove devel suffix
- Use codec2 v0.9.2 for internal build.
- Use LPCNet v0.1 for internal build.
2019-11-11 15:00:04 -06:00
cmake Prepare for FreeDV 1.4 release 2019-11-11 15:00:04 -06:00
contrib Gnome software indexing comment line, thanks Maitland 2017-09-05 00:22:13 +00:00
db Rename fdmdv2 to freedv. 2015-08-13 13:07:43 +00:00
debian tweaked debian files to get building on Ubuntu 16 with strange problem finding libraries. Review this later 2017-07-26 00:42:09 +00:00
docker Merge branch 'master' of github.com:drowe67/freedv-gui 2019-10-12 08:23:10 +10:30
script initial demo spotting script 2015-09-15 02:34:28 +00:00
src Use latest version of dylibbundler to avoid issues surrounding OSX updates. 2019-11-08 22:18:20 -08:00
wav added some test wave files 2019-05-07 18:51:58 +09:30
.travis.yml added some test wave files 2019-05-07 18:51:58 +09:30
CMakeLists.txt Prepare for FreeDV 1.4 release 2019-11-11 15:00:04 -06:00
COPYING Rename fdmdv2 to freedv. 2015-08-13 13:07:43 +00:00
README.md Update README.md 2019-11-08 06:56:11 +10:30
README.osx Remove unnecessary dependency from documentation. 2019-11-09 19:01:19 -08:00
USER_MANUAL.md Update USER_MANUAL.md 2019-11-07 06:19:50 +10:30
build_linux.sh use codec2/master now codec2/dr-dpsk branch merged 2019-09-10 05:50:32 +09:30
build_osx.sh Oops, cd back to main directory after dylibbundler's done building. 2019-11-09 21:01:19 -08:00
build_windows.sh added 32 bit capability to windows build script 2019-06-04 06:36:38 +09:30
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 Set minimum OSX version to 10.9 and add MacPorts build script. 2019-08-10 23:47:38 -07: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

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 and installing on Ubuntu Linux (16-18)

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

Building and installing 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

Run FreeDV:

$ ./build_linux/src/freedv

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

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 for Windows using Docker

The Windows build process above has been automated using a Docker container, see docker/README.md

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