DSD FME

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
but is there any other possibility than the default mode
No, not for the Cygwin version, the only viable option is /dev/dsp, which is essentially the old OSS hardware audio device and just easily works in Cygwin (most all Linux distros depreciated OSS support years and years ago). In essence, the 'Lite' version can only operate in 'disc tap' mode. It can also read OP25 symbol capture bins by using -i filename.bin There is no other input options in the prebuilt version. In the Linux version, you only get an additional RTL direct API, and the STDIN where you can pipe the output of another command/software directly into the input of DSD-FME.

As far as output goes, the only other viable option is 'null', which will effectively mute all audio output, of course, that precludes the other outputs it can, including decoded wav files, mbe files, symbol capture bins.

You can see the options for running DSD-FME by calling it with the -h for the help list. Pretty sure I have most all of the relevant options in there.
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Here again to update my wish list of signal types to give me something to work on while I go on hiatus.

Raw Signal Wish List:

DMR Direct Mode
DMR TDMA Direct Mode
Retevis/Other "Chinese" Offbrand DMR Clear and w/
'proprietary basic privacy' key enabled

dPMR clear and voice scrambled with known key

I do have one request, please, PLEASE, do not send me SDR# IF recorder samples, I have too many issues with playing those back to use them effectively. Known good methods for me include:

DSDPLus Source Audio Recording
SDR++ Audio Recorder
SDR++ Baseband Recorder (message ahead, file sizes can easily blimp in size)
OP25 Symbol Capture Bin files
 

peluson

Member
Joined
May 20, 2019
Messages
26
Hi, lwvmobile
Indeed (Tetra), that is not the hidden code, it can be found on the net with better or worse luck.
I was referring to the TETRAPOL, you will not find it anywhere and less the codec, that is the way I was referring.
If you are interested I can send it to you.
 

ArloG

Member
Joined
Feb 14, 2020
Messages
346
I didn't have good luck building the original version on Windows 10. I already had the Linux sub system working previously.
Couldn't get it to launch. Unless I needed to build and configure a .bat file of some sorts.
The sound card setup text was a bit vague on setting it up. Using VB Cable and works great with SDR software or simple USB audio input for applications like Fldigi, etc.
The pre compiled version ran right away. Still muddling my way through how to get the screen to stop scrolling to modify working parameters if there is a way.
A question though. I live in an area where voice traffic is spotty. I get good signal strength on my R8600.
Call it "The Sticks".
If a voice channel or control channel with voice actually has voice. Will the program decode it and let me hear it on my pc?
Here in N. Pa there is P25, DMR, and NXDN mostly. I rarely if ever hear any voice in any mode with DSD+ Fastlane.
Just wondering if I need to do anything to DSD-FME to tweak it in.
Oh yeah. Thanks!
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
I didn't have good luck building the original version on Windows 10. I already had the Linux sub system working previously.
Couldn't get it to launch. Unless I needed to build and configure a .bat file of some sorts.

No, if you were able to build it successfully, as far as I know, you should just run it in WSL same as Linux, the default command being

dsd-fme -N 2> log.ans

That should get you up with the ncurses terminal and menu system with default decoding for P25 and DMR. For NXDN, you'll have to switch in the menu to NXDN48, or NXDN96.

Were you able to build it successfully in WSL, or did you encounter any compiler errors. A user made a wiki entry for building and using it on WSL found here:


There is a few hoops to jump through in regards to pulseaudio in WSL.

The pre compiled version ran right away. Still muddling my way through how to get the screen to stop scrolling to modify working parameters if there is a way.

The precompiled Windows build lacks the ncurses terminal and menu system due to compatibility issues, hence the 'lite' designation, so it's just the console output, which depending on system type and verbosity can literally go by in the blink of an eye.

"The Sticks"

The Florida Man knows all about the sticks, it isn't any better here.

Just wondering if I need to do anything to DSD-FME to tweak it in.

Well, just what you see in the bat file, but if you really want to fine tune things, there are some options you can look at by running the -h command, and it'll list the options available to pass to the decoder.

dsd-fme -h or dsd-fme-win.exe -h
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Yet, again, another update to the pulse audio branch and the precompiled version, build #446:

Code:
Updates Include:
Enable DMR Direct Mode Voice and Data (testing)
DMR CACH and Burst ERR Tweaking
DMR and NXDN48 Filter Work
MSData Bug Fix
Disable DMR Data Superframe Debug
Rework LRRP (Magenta Color) to (Cyan) Easier to read in Command Prompt/Power Shell.

In order to make this a 'Lite' release, the following code had to be cut for compatibility or performance reasons:
NCurses Terminal/Menu
DMR Stereo BS (Dual Slot Voices)
DMR Embedded Alias/Embedded GPS (not LRRP)
Per Call WAV Saving
Call Alert Beep
RTL Input Support
Pulse Audio (revert to OSS)

Source Code contained in the zip file is specifically for the precompiled Windows version along with changes made for compatibility.

Not entirely sure how the updates to the filters will be received. My tests show that they mostly work better, but there may some instances where they do worse, but if you have good clean signal and appropriate gain levels going in, they should perform better than the old ones from my personal testing.


I swear, I'm actually going to take a break from the project for a while (said that last time) but its time for a bit of a hiatus (barring any major bug discovery or issues). Then, I'll be focused on reworking a lot of stuff on the back end, so there won't be any new stuff added for the foreseeable future while I enjoy the autumn/winter months.
 

radionx

Member
Joined
May 31, 2022
Messages
183
I was referring to the TETRAPOL, you will not find it anywhere and less the codec, that is the way I was referring.
TETRAPOL is an absolute black box and not even ETSI approved. I think the Isrealis used it for a while but eventually ditched in favor of a P25 system. Maybe they found some flaws...would not be surprised. Security by obscurity never works.
France is a heavy user of it.
In 10 years TETRAPOL is as dead as it can be.
 

Cretu

Member
Joined
Oct 9, 2022
Messages
21
TETRAPOL is an absolute black box and not even ETSI approved. I think the Isrealis used it for a while but eventually ditched in favor of a P25 system. Maybe they found some flaws...would not be surprised. Security by obscurity never works.
France is a heavy user of it.
In 10 years TETRAPOL is as dead as it can be.
Since year 2000 (aprox.) Nation-wide used in Spain by National Policie, Civil Guard, Military Emergency Unit and DGT (traffic, non-police unit). Now open for use to local polices who request access. Expensive terminals, very expensible. Designed by Matra (now EADS) at the beginning of 1990, so imagine what kind of technologies it must have... Maintained by Telefónica here. I can provide you a ton of records, if you want.
 

radionx

Member
Joined
May 31, 2022
Messages
183
Totally right, I forgot about the Guardia Civil Tetrapol system in Spain.

Paramilitary guys, heavy handed. You just don't mess around with them...they have a very interesting history. And yes, TETRAPOL is E2E. Are the MOSSOS in Catalunya on Tetra? The oldest police force of Europe...founded in 1719.

Spain, France and Switzerland are on TETRAPOL then. Rest of Europe is mostly Tetra. If there is not much money around it's DMR.

In the Americas Mexico is a Tetrapol user.

CC decoding should be possible:


Tetra would be an interesting target. Many users.
 
Last edited:

SignalPatcher

Member
Joined
Jun 4, 2013
Messages
29
Thanks in advance for the great software. I had the opportunity to test the Nexedge 4800 and 9600 with a key. Both the decoding and recording of the Nexedge 4800 work fine , but with the Nexedge 9600 I get gibberish on the output. I tried an older version already, replaced Cygwin with a reliable one, changed Virtual Audio Cable settings and every time I get the same. What is interesting, Windows' Precompiled versions decode 9600 well. What might be a reason od that?

It would be perfect if you added decoding from .wav file, then Virtual Audio Cable problems could be ruled out. As for Tetrapol, it seems to me that it is used not only in France and Spain. I also pick it up during propagation. Unfortunately, without a decoder, I don't know any details. I have IQ files for that. Only about this system would probably be better to write in a separate thread to make it more accessible. Now, by writing in a few threads, this can be hard to find.
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Thanks in advance for the great software. I had the opportunity to test the Nexedge 4800 and 9600 with a key. Both the decoding and recording of the Nexedge 4800 work fine , but with the Nexedge 9600 I get gibberish on the output. I tried an older version already, replaced Cygwin with a reliable one, changed Virtual Audio Cable settings and every time I get the same. What is interesting, Windows' Precompiled versions decode 9600 well. What might be a reason od that?

The only thing I can think of as far as to why the 9600 won't decode in Cygwin where it does in the Windows precompiled build is something to do with the audio gain levels. I've noticed 9600 can be a bit finicky in that regard. Not really sure. Other than that, I would just suggest double checking the command/start up/menu entries you are using to decode 9600 with and without a scrambler key and make sure you aren't starting up the Cygwin version with bad parameters or something. I should also mention that NXDN just behaves a lot better when its fed a squelched audio source as well to prevent a lot of random false syncs that tend to happen with its shortened sync pattern.

Speaking of wav files, do you have a wav file sample of the 9600 system you were having issues with that you could send to me for analysis?

It would be perfect if you added decoding from .wav file

This used to be a functionality of DSD, but I never had good luck with it, probably because everbody has wav files of different sampling rates and format types, and the software was hard coded to read 8k (or was it 48k) mono samples.
 

Cretu

Member
Joined
Oct 9, 2022
Messages
21
First of all, let me thank you for your job. Second, I understand you are in a well deserved hiatus, but let me ask (or perhaps I'm stupid and this feature already exists) if there is any chance you could, in the future, add the posibility to receive audio via TCP/UDP, so we could pass it to your software like we already do with other plugins in SDR#, just to mention an example. I have been messing around with SDR++ but still need to play with it much more.
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
First of all, let me thank you for your job. Second, I understand you are in a well deserved hiatus, but let me ask (or perhaps I'm stupid and this feature already exists) if there is any chance you could, in the future, add the posibility to receive audio via TCP/UDP, so we could pass it to your software like we already do with other plugins in SDR#, just to mention an example. I have been messing around with SDR++ but still need to play with it much more.

Right now, it depends on your operating system. It is possible to pipe TCP/UDP audio into DSD-FME in Linux (and also inside the Cygwin Environment) but not the precompiled version. If you use SDR++, you change the audio out sink to a network out sink and intercept the UDP traffic with socat and pipe it into DSD-FME with this command.

socat stdio udp-listen:7355 | dsd-fme -N -i - 2> log.ans

The only current caveat is that using STDIN pipe disables the Ncurses Terminal Menu because you can't run getch with a STDIN pipe, otherwise it would intercept all the input. To be honest, in the Linux Environment (or probably even Cygwin) for the STDIN, its easier, just as good, and you can use the menu if you use virtual sinks with pulse audio volume control mixer.

Screenshot from 2022-10-24 00-16-25.png
 
Last edited:

racingfan360

Member
Joined
Dec 19, 2005
Messages
1,176
Thanks again for all your work on this @lwvmobile

The only thing I can think of as far as to why the 9600 won't decode in Cygwin
I've tried this latest Cygwin version on multiple samples of Conventional NXDN9600, Clear and Scrambled, and it seems to be working well. So it might just SignalPatchers specific NXDN9600 system in this case.
 

Cretu

Member
Joined
Oct 9, 2022
Messages
21
Right now, it depends on your operating system. It is possible to pipe TCP/UDP audio into DSD-FME in Linux (and also inside the Cygwin Environment) but not the precompiled version. If you use SDR++, you change the audio out sink to a network out sink and intercept the UDP traffic with socat and pipe it into DSD-FME with this command.

socat stdio udp-listen:7355 | dsd-fme -N -i - 2> log.ans

The only current caveat is that using STDIN pipe disables the Ncurses Terminal Menu because you can't run getch with a STDIN pipe, otherwise it would intercept all the input. To be honest, in the Linux Environment (or probably even Cygwin) for the STDIN, its easier, just as good, and you can use the menu if you use virtual sinks with pulse audio volume control mixer.

View attachment 129927
I understand. Said the TCP thing because of SDR#, but yeah, indeed your method is good enough. I'm using Debian/Ubuntu just fine. What I want to try next (when I get back home) is your great DSD-FME in DragonOS Focal with the existing SDR++ installation in that distro and all the virtual sinks things. In theory Lubuntu 20.04 should do fine with your program.
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
I've tried this latest Cygwin version on multiple samples of Conventional NXDN9600, Clear and Scrambled, and it seems to be working well. So it might just SignalPatchers specific NXDN9600 system in this case.

Yeah, I was working with them in PM, pretty sure we narrowed it down to when they switched to the old version, the version they went too was prior to the NXDN96 EHR Descrambler Fix, so before that, I can only assume it was user error or something. I haven't heard back since then, so I can only assume they may have figured it out by now. Other than that, I was able to decode the sample they sent me without issues as well.
 

SignalPatcher

Member
Joined
Jun 4, 2013
Messages
29
Yes, it looks like the problem is mine. Unfortunately, I don't know how to solve it yet. If I use the "dsd-fme -fn -R key -Z -N 2> log.ans" command via mintty.exe located in Cygwin / bin, v1.6.0-411-g3224f0a starts. If I run compiled dsd-fme.exe I have either v1.6.0-446-g3086b78 or v1.6.0-450-g73f0d5d. I have no idea where it loads these v411 from, as it is nowhere to be found on my computer.

Code:
Github Build Version: v1.6.0-446-g3086b78 
MBElib version 1.3.1
Decoding only NXDN 9600 baud frames.
Logging Frame Payload to console
Enabling NCurses Terminal.
Audio In/Out Device: pulse
Error opening terminal: cygwin.

Code:
Github Build Version: v1.6.0-450-g73f0d5d 
MBElib version 1.3.1
Decoding only NXDN 9600 baud frames.
Logging Frame Payload to console
Enabling NCurses Terminal.
Audio In/Out Device: pulse
Error opening terminal: cygwin.
411upload.png
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
I have no idea where it loads these v411 from, as it is nowhere to be found on my computer.

Its probably in a dsd-fme folder somewhere in the ballpark of C:\Cygwin64\home\user\ since that's the default home directory when you use the Cygwin Terminal.

A potential remedy, open the Cygwin terminal and copy and paste each line below into the Cygwin terminal and run each individually (one line at a time):

Code:
mkdir dsd-fme-new
cd dsd-fme-new
git clone https://github.com/lwvmobile/dsd-fme
cd dsd-fme
git branch -a
git checkout remotes/origin/pulseaudio
git checkout -b pulseaudio
sudo cp tone8.wav /usr/share/
sudo cp tone24.wav /usr/share/
sudo chmod 777 /usr/share/tone8.wav
sudo chmod 777 /usr/share/tone24.wav
mkdir build
cd build
cmake ..
make
make install

Then you should be able to run it inside of the Cygwin (mintty) Terminal with the command

dsd-fme -fi -R 32767 -N 2> log.ans
 

Cretu

Member
Joined
Oct 9, 2022
Messages
21
Hello. I just tested your DSD-FME in latest DragoOS Focal R26. All the Virtual Sinking, Pulse Audio and other stuff seems to be working fine, specially with the integrated SDR++. But the printing in Ncurses mode is a mess. Used the auto install, but checked IT++ is OK and also the installed MBELib is the one from your GitHub. Also, when trying to launch DSD-FME as root, it crashes with this (don't know if this is to be expect, as with limited user is not happening):
"Assertion 'p' failed at pulse/simple.c:313, function pa_simple_read(). Aborting.
Aborted"


DragonOS is based on Lubuntu 20.04 and I think it deserves some love (only if you want and it's in your hand), because is a beast of a SDR distro. Any suggestion? Want me to check anything? I don't know what else to look at.
 

Attachments

  • DragonOS Focal R26-2022-10-27-06-52-17.png
    DragonOS Focal R26-2022-10-27-06-52-17.png
    244.9 KB · Views: 32

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
But the printing in Ncurses mode is a mess.
What command did you use? When you use the ncurses terminal, you have to route the console output to a log file or /dev/null , otherwise what happens in that screenshot happens. Usual syntax is to use the command like dsd-fme -N 2> log.ans or dsd-fme -N 2> /dev/null - You always want to make sure to have a 2> log.ans or 2> /dev/null at the very end of the command when using -N.

"Assertion 'p' failed at pulse/simple.c:313, function pa_simple_read(). Aborting.
That happens when you run it as root and the root account doesn't have access to the pulse audio server. I would recommend not running DSD-FME as the root user (or sudo) or even using the root account in general. This might not be doable though in a live environment, depending on how it was set up though.

DragonOS is based on Lubuntu 20.04 and I think it deserves some love (only if you want and it's in your hand), because is a beast of a SDR distro. Any suggestion? Want me to check anything? I don't know what else to look at.

Lubuntu 20.04 is perfectly fine for DSD-FME. This time, its actually not in my hands, since I don't put together or distribute DragonOS. You need to talk to the person who created that respin and tell him you want FME in it.
 
Top