This commit is contained in:
Kurt Moraw 2020-11-27 19:31:22 +01:00
parent 688b833188
commit 5e9b8d553b
153 changed files with 565 additions and 356 deletions

View File

@ -29,6 +29,12 @@ this software uses these programs:
* fftw3: http://www.fftw.org (GPL V.2 or later)
* libcodec2 (Linux: standard lib, Windows: from freeDV)
# Download alternatives
* download from github and build from source
* download windows installer and download Odroid and Raspberry images:
https://www.helitron.de/dj0abr/german/technik/sat/modem/images.htm
# building the software
* Linux
1. go into the folder "hsmodem"

Binary file not shown.

BIN
WinRelease/hsmodem.iobj Executable file

Binary file not shown.

BIN
WinRelease/hsmodem.ipdb Executable file

Binary file not shown.

BIN
WinRelease/hsmodem.pdb Executable file

Binary file not shown.

Binary file not shown.

BIN
hsmodem/Debug/audio.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/audio_voice.obj Executable file

Binary file not shown.

Binary file not shown.

BIN
hsmodem/Debug/audio_wasapi.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/codec2.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/constellation.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/crc16.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/fec.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/fft.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/frame_packer.obj Executable file

Binary file not shown.

View File

@ -0,0 +1,29 @@
e:\funk\hsmodem\hsmodem\debug\vc140.pdb
e:\funk\hsmodem\hsmodem\debug\vc140.idb
e:\funk\hsmodem\hsmodem\debug\audio.obj
e:\funk\hsmodem\hsmodem\debug\audio_voice.obj
e:\funk\hsmodem\hsmodem\debug\audio_voice_wasapi.obj
e:\funk\hsmodem\hsmodem\debug\audio_wasapi.obj
e:\funk\hsmodem\hsmodem\debug\codec2.obj
e:\funk\hsmodem\hsmodem\debug\constellation.obj
e:\funk\hsmodem\hsmodem\debug\crc16.obj
e:\funk\hsmodem\hsmodem\debug\fec.obj
e:\funk\hsmodem\hsmodem\debug\fft.obj
e:\funk\hsmodem\hsmodem\debug\frame_packer.obj
e:\funk\hsmodem\hsmodem\debug\hsmodem.obj
e:\funk\hsmodem\hsmodem\debug\liquid_if.obj
e:\funk\hsmodem\hsmodem\debug\main_helper.obj
e:\funk\hsmodem\hsmodem\debug\scrambler.obj
e:\funk\hsmodem\hsmodem\debug\speed.obj
e:\funk\hsmodem\hsmodem\debug\symboltracker.obj
e:\funk\hsmodem\hsmodem\debug\udp.obj
e:\funk\hsmodem\hsmodem\debug\voiceprocessor.obj
e:\funk\hsmodem\debug\hsmodem.ilk
e:\funk\hsmodem\debug\hsmodem.exe
e:\funk\hsmodem\debug\hsmodem.pdb
e:\funk\hsmodem\hsmodem\debug\hsmodem.tlog\cl.command.1.tlog
e:\funk\hsmodem\hsmodem\debug\hsmodem.tlog\cl.read.1.tlog
e:\funk\hsmodem\hsmodem\debug\hsmodem.tlog\cl.write.1.tlog
e:\funk\hsmodem\hsmodem\debug\hsmodem.tlog\link.command.1.tlog
e:\funk\hsmodem\hsmodem\debug\hsmodem.tlog\link.read.1.tlog
e:\funk\hsmodem\hsmodem\debug\hsmodem.tlog\link.write.1.tlog

22
hsmodem/Debug/hsmodem.log Executable file
View File

@ -0,0 +1,22 @@
 liquid_if.cpp
hsmodem.cpp
fft.cpp
audio_wasapi.cpp
audio.cpp
Code wird generiert...
Kompilieren...
voiceprocessor.cpp
udp.cpp
symboltracker.cpp
speed.cpp
scrambler.cpp
main_helper.cpp
frame_packer.cpp
fec.cpp
crc16.cpp
constellation.cpp
codec2.cpp
audio_voice_wasapi.cpp
audio_voice.cpp
Code wird generiert...
hsmodem.vcxproj -> E:\funk\hsmodem\Debug\hsmodem.exe

BIN
hsmodem/Debug/hsmodem.obj Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v140_xp:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1
Debug|Win32|E:\funk\hsmodem\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
hsmodem/Debug/liquid_if.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/main_helper.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/scrambler.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/speed.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/symboltracker.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/udp.obj Executable file

Binary file not shown.

BIN
hsmodem/Debug/vc140.idb Executable file

Binary file not shown.

BIN
hsmodem/Debug/vc140.pdb Executable file

Binary file not shown.

BIN
hsmodem/Debug/voiceprocessor.obj Executable file

Binary file not shown.

View File

@ -1,11 +1,19 @@
# makefile for hsmodem
# makefile for hsmodem on Linux (PC desktop and ARM)
# usage:
# make ... builds the program and copies all needed files to ../hsmodemLinux
# the shared libs are also copied to this location
# to distribute hsmodem you need the folder hsmodemLinux and its subfolders
# installation: when these files are copied to the target system,
# then (in the target system) run "sudo install".
# This will copy the sharded libs to its final location.
CXXFLAGS = -Wall -O3 -std=c++0x -Wno-write-strings -Wno-narrowing
LDFLAGS = -lpthread -lrt -lsndfile -lasound -lm -lopus -lbassopus -lbass -lbassenc_opus -lbassenc -lfftw3 -lfftw3_threads -lliquid -lcodec2
OBJ = hsmodem.o constellation.o crc16.o frame_packer.o main_helper.o scrambler.o speed.o fec.o audio.o udp.o fft.o liquid_if.o symboltracker.o audio_voice.o voiceprocessor.o codec2.o
default: $(OBJ)
g++ $(CXXFLAGS) -o ../LinuxRelease/hsmodem $(OBJ) $(LDFLAGS)
mkdir -p ../hsmodemLinux
g++ $(CXXFLAGS) -o ../hsmodemLinux/hsmodem $(OBJ) $(LDFLAGS)
clean:
rm -f *.o

BIN
hsmodem/Release/audio.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/audio_voice.obj Executable file

Binary file not shown.

Binary file not shown.

BIN
hsmodem/Release/audio_wasapi.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/codec2.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/constellation.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/crc16.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/fec.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/fft.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/frame_packer.obj Executable file

Binary file not shown.

View File

@ -0,0 +1,28 @@
e:\funk\hsmodem\hsmodem\release\vc140.pdb
e:\funk\hsmodem\hsmodem\release\voiceprocessor.obj
e:\funk\hsmodem\hsmodem\release\udp.obj
e:\funk\hsmodem\hsmodem\release\symboltracker.obj
e:\funk\hsmodem\hsmodem\release\speed.obj
e:\funk\hsmodem\hsmodem\release\scrambler.obj
e:\funk\hsmodem\hsmodem\release\main_helper.obj
e:\funk\hsmodem\hsmodem\release\liquid_if.obj
e:\funk\hsmodem\hsmodem\release\hsmodem.obj
e:\funk\hsmodem\hsmodem\release\frame_packer.obj
e:\funk\hsmodem\hsmodem\release\fft.obj
e:\funk\hsmodem\hsmodem\release\fec.obj
e:\funk\hsmodem\hsmodem\release\crc16.obj
e:\funk\hsmodem\hsmodem\release\constellation.obj
e:\funk\hsmodem\hsmodem\release\codec2.obj
e:\funk\hsmodem\hsmodem\release\audio_wasapi.obj
e:\funk\hsmodem\hsmodem\release\audio_voice_wasapi.obj
e:\funk\hsmodem\hsmodem\release\audio_voice.obj
e:\funk\hsmodem\hsmodem\release\audio.obj
e:\funk\hsmodem\winrelease\hsmodem.exe
e:\funk\hsmodem\winrelease\hsmodem.pdb
e:\funk\hsmodem\hsmodem\..\winrelease\hsmodem.exe
e:\funk\hsmodem\hsmodem\release\hsmodem.tlog\cl.command.1.tlog
e:\funk\hsmodem\hsmodem\release\hsmodem.tlog\cl.read.1.tlog
e:\funk\hsmodem\hsmodem\release\hsmodem.tlog\cl.write.1.tlog
e:\funk\hsmodem\hsmodem\release\hsmodem.tlog\link.command.1.tlog
e:\funk\hsmodem\hsmodem\release\hsmodem.tlog\link.read.1.tlog
e:\funk\hsmodem\hsmodem\release\hsmodem.tlog\link.write.1.tlog

24
hsmodem/Release/hsmodem.log Executable file
View File

@ -0,0 +1,24 @@
 audio.cpp
audio_voice.cpp
audio_voice_wasapi.cpp
audio_wasapi.cpp
codec2.cpp
constellation.cpp
crc16.cpp
fec.cpp
fft.cpp
frame_packer.cpp
hsmodem.cpp
liquid_if.cpp
main_helper.cpp
scrambler.cpp
speed.cpp
symboltracker.cpp
udp.cpp
voiceprocessor.cpp
Code wird generiert.
0 of 574 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
0 functions were new in current compilation
0 functions had inline decision re-evaluated but remain unchanged
Codegenerierung ist abgeschlossen.
hsmodem.vcxproj -> E:\funk\hsmodem\hsmodem\..\WinRelease\hsmodem.exe

BIN
hsmodem/Release/hsmodem.obj Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
#TargetFrameworkVersion=v4.0:PlatformToolSet=v140_xp:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1
Release|Win32|E:\funk\hsmodem\|

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
hsmodem/Release/liquid_if.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/main_helper.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/scrambler.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/speed.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/symboltracker.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/udp.obj Executable file

Binary file not shown.

BIN
hsmodem/Release/vc140.pdb Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
hsmodem/audio/3000.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/4000.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/4410.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/4800.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/5500.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/6000.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/6600.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/7200.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/amsat.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/kbps.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/psk8.pcm Normal file

Binary file not shown.

BIN
hsmodem/audio/qpsk.pcm Normal file

Binary file not shown.

22
hsmodem/audio/wav2pcm.py Normal file
View File

@ -0,0 +1,22 @@
from pydub import AudioSegment
import os
import sys
def wav2pcm(wav_dir,out_pcm_dir):
for path,pathname,filenames in os.walk(wav_dir):
for filename in filenames:
sound = AudioSegment.from_file(os.path.join(path,filename))
outfilename=os.path.join(out_pcm_dir,filename.split('.wav')[0]+'.pcm')
sound.export(outfilename, format='s16le', bitrate='8k')
if __name__=="__main__":
if len(sys.argv) != 3:
print("usage: python wav2pcm.py in_dir out_dir")
else:
wav2pcm(sys.argv[1],sys.argv[2])

View File

@ -30,7 +30,6 @@
#include <Tlhelp32.h>
#include <winbase.h>
#include <Shlobj.h>
#include "opus.h"
#define _USE_MATH_DEFINES
#include <math.h>
@ -55,12 +54,11 @@
#include <arpa/inet.h>
#include <pwd.h>
#include <math.h>
#include <opus/opus.h>
#endif
#include "opus.h"
#include "bass.h"
#include "basswasapi.h"
#include "bassflac.h"
#include "liquid.h"
#include "frameformat.h"
#include "fec.h"

46
hsmodem/hsmodem.sh Executable file
View File

@ -0,0 +1,46 @@
#!/bin/bash
echo
echo
echo
echo
echo "this script installs HSmodem on your Linux system"
echo "================================================="
echo
echo "1. Downloads the sources from github"
echo "2. compiles the sources for your local machine and architecture"
echo "3. copy the shared libraries to it's final location"
echo
echo "Install required packages and libraries. Press ENTER ..."
read
sudo apt-get update
sudo apt-get -y install libopus-dev libfftw3-dev libcodec2-dev libsndfile-dev libasound-dev mono-complete pavucontrol git g++ build-essential
echo
echo "Download hsmodem sources from github. Press ENTER ... "
read
git clone https://github.com/dj0abr/SSB_HighSpeed_Modem
echo
echo "Compile the sources and build the executable program. Press ENTER ..."
read
make -j 4
echo
echo "copy the shared libraries to it's final location. Press ENTER ..."
read
echo
# now find the shared library directory
# this is the directory where libopus.so is installed
LIBNAME=$(find /usr -name libopus.so | head -1)
LIBFOLDER=$(dirname $LIBNAME)
ARCHITECTURE=$(uname -m)
echo copy shared libraries for $ARCHITECTURE to $LIBFOLDER
echo
if [ ${ARCHITECTURE} == 'x86_64' ];
then
sudo cp ./SharedLibs/$ARCHITECTURE/*.so $LIBFOLDER
elif [ ${ARCHITECTURE} == 'aarch64' ];
then
sudo cp ./SharedLibs/$ARCHITECTURE/*.so $LIBFOLDER
else
echo ================================================================
echo error: no shared libs for $ARCHITECTURE . Install them manually.
echo ================================================================
fi

Some files were not shown because too many files have changed in this diff Show More