Merge pull request #27 from lwvmobile/lwvmobile-patch-readme-main

New DSD-FME screenshot
This commit is contained in:
lwvmobile 2022-02-13 19:14:26 -05:00 committed by GitHub
commit 61ce4298a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 261 additions and 2 deletions

110
README.md
View File

@ -1,10 +1,10 @@
# Digital Speech Decoder - Florida Man Edition
This version of DSD is a flavor blend of [szechyjs](https://github.com/szechyjs/dsd "szechyjs") RTL branch and some of my own additions, along with a few tweaks from the [LouisErigHerve](https://github.com/LouisErigHerve/dsd "LouisErigHerve") branch as well. NXDN voice decoding is currently working a lot better, thanks to the latter, although I have yet to explore the expanded NXDN or DMR decoding he has laid out. That is a goal. I have also implemented a few more RTL options, including rtl device gain, PPM error, device index selection, squelch, VFO bandwidth, and a UDP remote that works like the old rtl_udp fork, although its currently limited to changing frequency and squelch. The goal is to integrate this project into [EDACS-FM](https://github.com/lwvmobile/edacs-fm "EDACS-FM") but I also want it to be its own standalone project.
![alt text](https://github.com/lwvmobile/dsd-fme/blob/master/Screenshot_216.png)
![DSD-FME](https://github.com/lwvmobile/dsd-fme/blob/master/dsd-fme.png)
## Example Usage
`padsp -m dsdfme -- ./dsd -fi -i rtl -o /dev/dsp -c 154.9875M -P -2 -D 0 -G 46 -L 70 -U 6021 -Y 12`
`padsp -m dsdfme -- dsd -fi -i rtl -o /dev/dsp -c 154.9875M -P -2 -D 0 -G 46 -L 70 -U 6021 -Y 12`
```
-i rtl to use rtl_fm
@ -28,6 +28,20 @@ This version of DSD is a flavor blend of [szechyjs](https://github.com/szechyjs/
-W Monitor Source Audio (WIP!) (may or may not decode audio if this is on, depending on selected decode type and luck)
(Also, should be noted that depending on modulation, may sound extremely terrible)
```
### Note
`dsd` and `./dsd` may need to be used in your usage, depending on if you are running it from the build folder, or if you have run make install. You will need to tweak the examples to your particular usage.
## Cygwin RTL Usage, output to /dev/dsp
`dsd -fi -i rtl -o /dev/dsp -c 154.9875M -P -2 -D 1 -G 36 -L 70 -U 6021 -Y 12`
## Example STDIN UDP from GQRX or SDR++, output to /dev/dsp
`socat stdio udp-listen:7355 | padsp -- dsd -fa -i - -o /dev/dsp `
## Example PA input, OSS output, save mbe files
Create MBE folder first in directory
`padsp -- dsd -fa -i pa:1 -o /dev/dsp -d ./MBE/`
## Roadmap
The Current list of objectives include:
@ -42,6 +56,98 @@ The Current list of objectives include:
4. Improve Monitor Source Audio (if #2 on list is up and working)
## How to clone, check out, and build this branch
### Debian/Ubuntu
Using the included install.sh should make for a simple and painless clone, build, and install on any Debian or Ubuntu based system. Simply acquire or copy the script, and run it.
```
wget https://raw.githubusercontent.com/lwvmobile/dsd-fme/master/install.sh
chmod +x install.sh
./install.sh
```
### Cygwin
This script will attempt to automatically build and install in Cygwin environments, but the user will be responsible for installing all dependencies, including librtlsdr.
```
wget https://raw.githubusercontent.com/lwvmobile/dsd-fme/master/cygwin_install.sh
chmod +x install.sh
./install.sh
```
### Manual Build
Or you can elect to manually follow the steps down below.
First, install dependency packages. This guide will assume you are using Debian/Ubuntu based distros. Check your package manager for equivalent packages if different. PortAudio is not currently used in this build, and is disabled in CMakeLists.txt, you can re-enable it if you wish, but it isn't recommended unless you have a very specific reason to do so. Some of these dependencies are not currently be used, but may be used in future builds.
```
sudo apt update
sudo apt install libsndfile1-dev libfftw3-dev liblapack-dev socat libusb-1.0-0-dev libncurses5 libncurses5-dev rtl-sdr librtlsdr-dev libusb-1.0-0-dev cmake git wget make build-essential
wget -O itpp-latest.tar.bz2 http://sourceforge.net/projects/itpp/files/latest/download?source=files
tar xjf itpp*
#if you can't cd into this folder, double check folder name first
cd itpp-4.3.1
mkdir build
cd build
cmake ..
make -j `nproc`
sudo make install
sudo ldconfig
cd ..
cd ..
```
MBELib is considered a requirement in this build. You must read this notice prior to continuing. [MBElib Patent Notice](https://github.com/szechyjs/mbelib#readme "MBElib Patent Notice") This version of MBELib is 1.3.0 for this main build.
```
git clone https://github.com/szechyjs/mbelib
cd mbelib
mkdir build
cd build
cmake ..
make -j `nproc`
sudo make install
sudo ldconfig
cd ..
cd ..
```
Finish by running these steps to clone and build DSD-FME.
```
git clone https://github.com/lwvmobile/dsd-fme
cd dsd-fme
mkdir build
cd build
cmake ..
make -j `nproc`
##only run make install if you don't have another version already installed##
sudo make install
sudo ldconfig
```
Optional 'Virtual Sinks' for routing audio from SDR++ or GQRX, etc, into DSD-FME
You may wish to direct sound into DSD-FME via Virtual Sinks. You may set up a Virtual Sink or two on your machine for routing audio in and out of applications to other applications using the following command, and opening up pavucontrol "PulseAudio Volume Control" in the menu to change line out of application to virtual sink, and line in of DSD-FME to monitor of virtual sink. This command will not persist past a reboot, so you will need to invoke them each time you reboot, or search for how to add this to your conf files for persistency if desired.
```
pacmd load-module module-null-sink sink_name=virtual_sink sink_properties=device.description=Virtual_Sink
pacmd load-module module-null-sink sink_name=virtual_sink2 sink_properties=device.description=Virtual_Sink2
```
Already have this branch, and just want to pull the latest build?
```
##Open your clone folder##
git pull
##cd into your build folder##
cd build
##cmake usually isn't necesary, but could be if I update the cmakelist.txt
cmake ..
make -j `nproc`
sudo make install
sudo ldconfig
```
## License
Copyright (C) 2010 DSD Author

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

56
cygwin-install.sh Normal file
View File

@ -0,0 +1,56 @@
#! /bin/bash
clear
echo DSD-FME Digital Speech Decoder - Florida Man Edition Cygwin Auto Installer
echo MBELib is considered a requirement on this build.
echo You must view this notice prior to continuing.
echo The Patent Notice can be found at the site below.
echo https://github.com/szechyjs/mbelib#readme
echo Please confirm that you have viewed the patent notice by entering y below.
echo
echo y/N
read ANSWER
Y='y'
if [[ $Y == $ANSWER ]]; then
# run the setup.exe from cygwin and install dependencies first!
#sudo apt update
#sudo apt install libpulse-dev pavucontrol libsndfile1-dev libfftw3-dev liblapack-dev socat libusb-1.0-0-dev libncurses5 libncurses5-dev rtl-sdr librtlsdr-dev libusb-1.0-0-dev cmake git wget make build-essential
wget -O itpp-latest.tar.bz2 http://sourceforge.net/projects/itpp/files/latest/download?source=files
tar xjf itpp*
#if you can't cd into this folder, double check folder name first
cd itpp-4.3.1
mkdir build
cd build
cmake ..
make -j `nproc`
make install
cd ..
cd ..
git clone https://github.com/szechyjs/mbelib
cd mbelib
mkdir build
cd build
cmake ..
make -j `nproc`
make install
cd ..
cd ..
git clone https://github.com/lwvmobile/dsd-fme
cd dsd-fme
mkdir build
cd build
cmake ..
make -j `nproc`
##only run make install if you don't have another version already installed##
make install
else
echo
echo Sorry, you cannot build DSD-FME without acknowledging the Patent Notice.
fi

17
cygwin-rebuild.sh Normal file
View File

@ -0,0 +1,17 @@
#! /bin/bash
clear
echo DSD-FME Digital Speech Decoder - Florida Man Edition
echo Cygwin Automatic Git Pull and Rebuild
echo
sleep 1
##Open your clone folder##
git pull
sleep 2
##cd into your build folder##
cd build
##cmake usually isn't necesary, but could be if I update the cmakelist.txt
cmake ..
make -j `nproc`
make install

BIN
dsd-fme.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

59
install.sh Normal file
View File

@ -0,0 +1,59 @@
#! /bin/bash
clear
echo DSD-FME Digital Speech Decoder - Florida Man Edition Auto Installer
echo MBELib is considered a requirement on this build.
echo You must view this notice prior to continuing.
echo The Patent Notice can be found at the site below.
echo https://github.com/szechyjs/mbelib#readme
echo Please confirm that you have viewed the patent notice by entering y below.
echo
echo y/N
read ANSWER
Y='y'
if [[ $Y == $ANSWER ]]; then
sudo apt update
sudo apt install libsndfile1-dev libfftw3-dev liblapack-dev socat libusb-1.0-0-dev libncurses5 libncurses5-dev rtl-sdr librtlsdr-dev libusb-1.0-0-dev cmake git wget make build-essential
wget -O itpp-latest.tar.bz2 http://sourceforge.net/projects/itpp/files/latest/download?source=files
tar xjf itpp*
#if you can't cd into this folder, double check folder name first
cd itpp-4.3.1
mkdir build
cd build
cmake ..
make -j `nproc`
sudo make install
sudo ldconfig
cd ..
cd ..
git clone https://github.com/szechyjs/mbelib
cd mbelib
mkdir build
cd build
cmake ..
make -j `nproc`
sudo make install
sudo ldconfig
cd ..
cd ..
git clone https://github.com/lwvmobile/dsd-fme
cd dsd-fme
mkdir build
cd build
cmake ..
make -j `nproc`
##only run make install if you don't have another version already installed##
sudo make install
sudo ldconfig
else
echo
echo Sorry, you cannot build DSD-FME without acknowledging the Patent Notice.
fi

17
rebuild.sh Normal file
View File

@ -0,0 +1,17 @@
#! /bin/bash
clear
echo DSD-FME Digital Speech Decoder - Florida Man Edition
echo Automatic Git Pull and Rebuild
echo
sleep 1
##Open your clone folder##
git pull
sleep 2
##cd into your build folder##
cd build
##cmake usually isn't necesary, but could be if I update the cmakelist.txt
cmake ..
make -j `nproc`
sudo make install
sudo ldconfig

4
virtualsink.sh Normal file
View File

@ -0,0 +1,4 @@
pacmd load-module module-null-sink sink_name=virtual_sink sink_properties=device.description=Virtual_Sink
pacmd load-module module-null-sink sink_name=virtual_sink2 sink_properties=device.description=Virtual_Sink2