119 lines
5.0 KiB
Plaintext
Executable File
119 lines
5.0 KiB
Plaintext
Executable File
|
|
Note: The directory freedvpkg no longer contains source files. It only contains copies of
|
|
the codec2 libraries for use by Quisk. If any other files are present, delete them.
|
|
|
|
FreeDV and Directory freedvpkg
|
|
==============================
|
|
|
|
FreeDV is the combination of the codec2 codec and the fdmdv modem. It provides digital voice
|
|
in 1200 Hz bandwidth suitable for HF transmission. Quisk has native (built-in) support for
|
|
FreeDV. Just push the FDV mode and talk. This freedvpkg directory contains copies of the
|
|
codec2 libraries for use by Quisk.
|
|
|
|
You can also use the separate FreeDV program available at freedv.org, and the Quisk DGT-U mode
|
|
which attaches to external digital programs. The setup is identical to fldigi and other external
|
|
digital programs.
|
|
|
|
Quisk will add the FDV mode button unless your config file contains the line
|
|
add_freedv_button = 0
|
|
If there is a problem with the freedv module, the button will be grayed out.
|
|
|
|
The freedv module requires the codec2 library. This library is included for Windows and for
|
|
Ubuntu 14.04 LTS 32-bit and 64-bit. For other systems (such as ARM) you will need to build another
|
|
codec2. Just try the FDV mode and see if it works. It should always work on Windows, and may work
|
|
on Linux. If the FDV button is grayed out, you need a different codec2 than the one included. Make
|
|
a new codec2 library, and copy it to freedvpkg/libcodec2.so.
|
|
|
|
Search Order
|
|
============
|
|
|
|
Quisk will search for a valid codec2 library in this order on Windows:
|
|
1. freedvpkg/libcodec2.dll. Not included. Copy the codec2 you want to use to this name.
|
|
2. freedvpkg/libcodec2_32.dll. The 32-bit codec2 shipped with Quisk.
|
|
3. The system codec2 library installed outside of Quisk by another program.
|
|
|
|
Quisk will search for a valid codec2 library in this order on Linux:
|
|
1. freedvpkg/libcodec2.so. Not included. Copy the codec2 you want to use to this name.
|
|
2. freedvpkg/libcodec2_32.so. The 32-bit codec2 shipped with Quisk.
|
|
3. freedvpkg/libcodec2_64.so. The 64-bit codec2 shipped with Quisk.
|
|
4. The system codec2 library installed outside of Quisk by another program.
|
|
|
|
How to Build a New codec2
|
|
=========================
|
|
|
|
The source for codec2 is in SourceForge in the freetel project. Or google for other sources or perhaps
|
|
a pre-built library. If you need to compile codec2 from source, first change to a suitable directory
|
|
(not the Quisk directory) and download the source with svn:
|
|
|
|
svn co https://svn.code.sf.net/p/freetel/code/codec2-dev codec2-dev
|
|
|
|
Note that we are using codec2-dev to get the most recent source. Then build codec2 using the directions
|
|
found in README. The directions given below are current as of May 2018, but check for changes.
|
|
Then copy the codec2 library to the freedvpkg directory under Quisk.
|
|
|
|
If the new codec2 contains new modes, add them to freedv_modes in your config file.
|
|
|
|
The Speex "-dev" packages are not needed by codec2, but are required for the Unit Test modules.
|
|
|
|
Build a New codec2 on Linux
|
|
===========================
|
|
Create the codec2 shared library. This assumes a 64-bit linux. Change the directory
|
|
name from build_linux64 to build_linux32 for 32-bit linux. Note the "../".
|
|
|
|
cd codec2-dev
|
|
mkdir build_linux64
|
|
cd build_linux64
|
|
cmake -DCMAKE_BUILD_TYPE=Release ../
|
|
make
|
|
cd src
|
|
cp libcodec2.so my-quisk-directory/freedvpkg
|
|
|
|
Build a New 32-bit codec2 on 64-bit Linux
|
|
=========================================
|
|
Make sure package libc6-dev-i386 is installed.
|
|
Create the codec2 shared library. Note the "../".
|
|
|
|
cd codec2-dev
|
|
mkdir build_linux32
|
|
cd build_linux32
|
|
export CFLAGS=-m32
|
|
cmake -DCMAKE_BUILD_TYPE=Release ../
|
|
make
|
|
cd src
|
|
cp libcodec2.so my-quisk-directory/freedvpkg
|
|
|
|
Build a New codec2 on Windows
|
|
=============================
|
|
For Windows you need to install MinGW-w64, MSYS2, and g++. Use the MSYS2 shell. The Speex libraries
|
|
are not needed by codec2, but are required for the Unit Test modules. To build the Unit Test modules,
|
|
you need to install Speex and add -DSPEEXDSP_INCLUDE_DIR=../speex/include/speex -DSPEEXDSP_LIBRARY=../speex/bin.
|
|
|
|
# Use msys2 32-bit shell:
|
|
cd codec2-dev
|
|
mkdir build_win32
|
|
cd build_win32
|
|
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DUNITTEST=OFF ../
|
|
make codec2
|
|
cd src
|
|
cp libcodec2.dll my-quisk-directory/freedvpkg
|
|
|
|
# Use msys2 64-bit shell:
|
|
cd codec2-dev
|
|
mkdir build_win64
|
|
cd build_win64
|
|
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DUNITTEST=OFF -DCMAKE_SYSTEM_PROCESSOR=x86_64 ../
|
|
make codec2
|
|
cd src
|
|
cp libcodec2.dll my-quisk-directory/freedvpkg
|
|
|
|
Testing
|
|
=======
|
|
You can just start Quisk and see if the FDV button is not grayed out, and FDV works. Or you can
|
|
test the import of freedv and look for error messages.
|
|
|
|
cd my-quisk-directory
|
|
c:/python27/python.exe # (or just "python" on Linux)
|
|
import _quisk
|
|
_quisk.freedv_get_version() # This should return 10 or higher for a recent codec2
|
|
|