DSD FME

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Does the new main branch include the udp audio output, or is it only in the audio_work branch?
The UDP audio output that comes from dsd-fme is only available in the audio_work branch, and I've only ever been able to get it to work with the following commands on the receiving end.

Code:
//short 8k/2
socat stdio udp-listen:23456 | play --buffer 640 -q -b 16 -r 8000 -c2 -t s16 -

//short 8k/1
socat stdio udp-listen:23456 | play --buffer 320 -q -b 16 -r 8000 -c1 -t s16 -

I couldn't get it to work with VLC, not sure why, it may want some sort of handshake first or the format is different, unknown. I also speculate it may work okay with OP25's audio.py as well, but I'm not sure what the default format that is looking for, so it may receive it, but play it back at a different rate.

Figured it out. It does work in Main Branch with ffmpeg to Icecast server.

Yeah, theoretically, the Ice Cast method in the Example usage should work with any audio, since it works independently from dsd-fme and listens to the audio device itself, whether its virtual or real hardware. I honestly never tried it myself, but you make two people who confirm that method works.
 

n5pwp

Member
Joined
Jan 10, 2015
Messages
276
Location
Spring, Texas
Playing with my OpenSpot and decoding YSF. I setup SDRpp to the frequency my OpenSpot is transmitting and decoding it through DSD-FME. I seemed to do a pretty good job. the only I noticed was that nothing seems to get logged in the Call History. Also, I noticed the RMn: shows something completely different from the YSF Reflector or room number. Not sure where that comes from.
Mike
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
I noticed was that nothing seems to get logged in the Call History.

Yeah, I never got around to implementing it, since CSD is string based and not numerical, and the call history was based on numerical values. I could work it in, I just haven't as of yet.

Also, I noticed the RMn: shows something completely different from the YSF Reflector or room number. Not sure where that comes from.
I don't really know what to tell you on that. Just going by what the manual says to decode those as. Its possible the extra information you are looking for is in the extra DT frames FN6 and FN7, but the manual doesn't say anything about how those are decoded. This is all I have to go on from the manual when dealing with V/D1 and V/D 2 voice and data.

Screenshot from 2023-09-25 06-01-33.png

Screenshot from 2023-09-25 06-02-20.png
 

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
@lwvmobile installed SDR++ and made connection with DSD-FME but it will not recognize the signal. (example shown is for a Phase 1 system that is not simulcast and was received using RTL-SDR, but same thing happens on Duke frequencies.

Capture.PNG
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
It looks like you used the command directly from the bat file without any modification, i.e., it still has my personal computers LAN's private IP address (192.168.7.8). You'll want to just either use the option 'tcp', or flesh it out to match your own internal ip address, you may also need to set your sink and rigctl from localhost to your private IP address.

Here's what settings I use that work best on Duke.

Screenshot from 2023-10-09 06-04-35.png
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Looks like the way its currently coded, if it doesn't find the group file, its going to automatically close. I would double check the spelling on both the command and the file, and also, if its in a bat file, remember, the bat file does a cd into the dsd-fme directory for the windows builds. I usually find it easiest to just put your stuff in the Examples folder and point to it like this.

-G examples\vipergroup.csv

Also, just worth mentioning, on the rtl input configuration, there are only certain values it will properly accept. Here is a list of the RTL syntax. No decimal values are allowed, and I'd probably just stick to 12 for RTL BW. Instead of AUTO, you should use 0. If its a value it can't parse, it should just revert to the default value, but just FYI.

Code:
RTL-SDR options:
 Usage: rtl:dev:freq:gain:ppm:bw:sq:udp
  NOTE: all arguments after rtl are optional now for trunking, but user configuration is recommended
  dev  <num>    RTL-SDR Device Index Number or 8 Digit Serial Number, no strings! (default 0)
  freq <num>    RTL-SDR Frequency (851800000 or 851.8M)
  gain <num>    RTL-SDR Device Gain (0-49)(default = 0; Hardware AGC recommended)
  ppm  <num>    RTL-SDR PPM Error (default = 0)
  bw   <num>    RTL-SDR Bandwidth kHz (default = 12)(4, 6, 8, 12, 16, 24)
  sq   <num>    RTL-SDR Squelch Level vs RMS Value (Optional)
  udp  <num>    RTL-SDR Legacy UDP Remote Port (Optional -- External Use Only)
 Example: dsd-fme -fs -i rtl -C cap_plus_channel.csv -T
 Example: dsd-fme -fp -i rtl:0:851.375M:22:-2:24:0:6021

So, maybe try putting your csv files in the Examples folder, and running something like this instead.

dsd-fme -f1 -i rtl:0:772.60625M:0:0:12:0 -T -G examples\vipergroup.csv -N 2> VIPER-log.ans

Also, if its P25 phase 1 only, run -f1, if its Phase 1 and Phase 2, run -ft, if its Phase 2 only, run -f2.
 

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
Looks like the way its currently coded, if it doesn't find the group file, its going to automatically close. I would double check the spelling on both the command and the file, and also, if its in a bat file, remember, the bat file does a cd into the dsd-fme directory for the windows builds. I usually find it easiest to just put your stuff in the Examples folder and point to it like this.

-G examples\vipergroup.csv

Also, just worth mentioning, on the rtl input configuration, there are only certain values it will properly accept. Here is a list of the RTL syntax. No decimal values are allowed, and I'd probably just stick to 12 for RTL BW. Instead of AUTO, you should use 0. If its a value it can't parse, it should just revert to the default value, but just FYI.

Code:
RTL-SDR options:
 Usage: rtl:dev:freq:gain:ppm:bw:sq:udp
  NOTE: all arguments after rtl are optional now for trunking, but user configuration is recommended
  dev  <num>    RTL-SDR Device Index Number or 8 Digit Serial Number, no strings! (default 0)
  freq <num>    RTL-SDR Frequency (851800000 or 851.8M)
  gain <num>    RTL-SDR Device Gain (0-49)(default = 0; Hardware AGC recommended)
  ppm  <num>    RTL-SDR PPM Error (default = 0)
  bw   <num>    RTL-SDR Bandwidth kHz (default = 12)(4, 6, 8, 12, 16, 24)
  sq   <num>    RTL-SDR Squelch Level vs RMS Value (Optional)
  udp  <num>    RTL-SDR Legacy UDP Remote Port (Optional -- External Use Only)
 Example: dsd-fme -fs -i rtl -C cap_plus_channel.csv -T
 Example: dsd-fme -fp -i rtl:0:851.375M:22:-2:24:0:6021

So, maybe try putting your csv files in the Examples folder, and running something like this instead.

dsd-fme -f1 -i rtl:0:772.60625M:0:0:12:0 -T -G examples\vipergroup.csv -N 2> VIPER-log.ans

Also, if its P25 phase 1 only, run -f1, if its Phase 1 and Phase 2, run -ft, if its Phase 2 only, run -f2.

I thought I answered question just before you posted, and deleted my post. I thought the problem was when it got created there was a comma at the end and that was causing the issue, as I tested it with a smaller sample and it worked. Maybe the file is too big, because after removing the last comma and trying with full file it's not working again.
 
Last edited:

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
@lwvmobile
Here is the error I'm getting in the logs, if that helps.

12:17:39 Sync: +P25p1 [32msrc: [ 0] [0m[32mtg: [ 0] [0m duid:EE
12:17:39 Sync: +P25p1 [36mnac: [ 1F0] [0m[32msrc: [ 0] [0m[32mtg: [ 0] [0m TSBK[0m
3 [main] dsd-fme 1760 cygwin_exception::eek:pen_stackdumpfile: Dumping stack trace to dsd-fme.exe.stackdump


dsd-fme.exe.stackdump...

Stack trace:
Frame Function Args
01BA5C58 610232AB (000003D0, 0000EA60, 000000A4, 01BA5CB8)
01BA5D78 610F5C53 (00680068, 80048736, 3A630000, 6573552F)
01BA5ECC 610F13FD (00000000, 00000000, 00000000, 00000000)
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Well, can you zip up the entire log.ans file you had and the group.csv file you were using and send it to me, it could be something in there causing the crash, or at least, it'll be able to give me a clue about what might have happened there.

Does the crash happen without specifying a group.csv file?
 

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
Well, can you zip up the entire log.ans file you had and the group.csv file you were using and send it to me, it could be something in there causing the crash, or at least, it'll be able to give me a clue about what might have happened there.

Does the crash happen without specifying a group.csv file?

The crash does not happen without the group file.
 

Attachments

  • NCSHP_dsd-fme.zip
    38 KB · Views: 13

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
The crash does not happen without the group file.
Okay, I think I found what is going on, actually, I had figured the same thing out a while back. Again, a quirk of the Windows/Cygwin builds. Maximum supported groups is 1023, and you group file was at 2908. I must have made a comment on the code way back last year regarding it, looks like you did the thing.

Code:
groupinfo group_array[0x3FF]; //max supported by Cygwin is 3FFF, I hope nobody actually tries to import this many groups

Sometime, in the future, I need to revisit that and see if I can allocate more memory for it and still have it import correctly.
 

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
Okay, I think I found what is going on, actually, I had figured the same thing out a while back. Again, a quirk of the Windows/Cygwin builds. Maximum supported groups is 1023, and you group file was at 2908. I must have made a comment on the code way back last year regarding it, looks like you did the thing.

Code:
groupinfo group_array[0x3FF]; //max supported by Cygwin is 3FFF, I hope nobody actually tries to import this many groups

Sometime, in the future, I need to revisit that and see if I can allocate more memory for it and still have it import correctly.
Thanks, I'll trim it down. Being the state capital, and having the SHP Training Center and State Fair here, we get a lot of traffic from across the state affiliated to our towers. Working fine after I decreased number of TGs in file.

Capture.PNG
 
Last edited:

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Thanks, I'll trim it down. Being the state capital, and having the SHP Training Center and State Fair here, we get a lot of traffic from across the state affiliated to our towers. Working fine after I decreased number of TGs in file.

Well, since you seem to up and running to some extent now with DSD-FME, you might be interested in trying the latest build of the experimental AW precompiled Windows build, with the Harris Talker Alias included. I've attached a zip file with the latest exe's for DSD-FME. I also went ahead and made a (poor) demonstration of using it to decode DSDPlus Wav Files of AEP (FDMA and TDMA) and Duke Energy, all having the Harris talker alias opcode on their calls, as well as a failed attempt to use the rtl input to tune Duke Energy sites, but the signal on that those sites have pretty much evaporated this afternoon, as its a bit distant from my location and I only get decent signal in the early morning when there isn't going to be much activity at all.


@mtindor You may be interested as well in using this to look at some of those talker aliases on your end, if that'll help you piece together any TG's or anything like that.

 

Attachments

  • dsd-fme-aw211-20231015-patch.zip
    625.7 KB · Views: 38

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
Up and running, seems to decode frequency info faster. But they still haven't gone live with traffic yet,

Capture.PNG
 

ellobillo81

Newbie
Joined
Oct 16, 2023
Messages
1
@lwvmobile
hola,
Me gustaría saber si se puede trabajar con distintas líneas de audio virtual, como se hacía con la versión de DSD+ o DSD fastline.
Con las anteriores la línea de comandos quedaba tal que así:

DSDPlus -i2 -o2 -fr -f1 -v4 -u1 -T -E -Pwav -g300 -wel6.684 -wes200.590 -wcl243.684 -wsl243.1054 -wss57.200 >DSD.log

Donde -i2 es la variable de VAC

Alguien lo ha probado?
 

RaleighGuy

Member
Premium Subscriber
Joined
Jul 15, 2014
Messages
14,472
Location
Raleigh, NC
@lwvmobile
hola,
Me gustaría saber si se puede trabajar con distintas líneas de audio virtual, como se hacía con la versión de DSD+ o DSD fastline.
Con las anteriores la línea de comandos quedaba tal que así:

DSDPlus -i2 -o2 -fr -f1 -v4 -u1 -T -E -Pwav -g300 -wel6.684 -wes200.590 -wcl243.684 -wsl243.1054 -wss57.200 >DSD.log

Donde -i2 es la variable de VAC

Alguien lo ha probado?

Recuerde que DSD FME es un programa diferente a DSD+, son dos programas diferentes

Please remember DSD FME is a different program than DSD+, they are two different programs
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,297
Location
Lafayette County, FL
Me gustaría saber si se puede trabajar con distintas líneas de audio virtual, como se hacía con la versión de DSD+ o DSD fastline.
Con las anteriores la línea de comandos quedaba tal que así:

DSD-FME doesn't have any internal handling for selecting which input audio device to use, its either going to use the default, or the one selected by either the Pulse Audio Mixer, or Windows Volume Control/Mixer. Particularly with the Windows version, its run through Cygwin, and its OSS implementation doesn't expose the actual Windows hardware for selection (that I am aware of, at least), since its just a software emulation of OSS that routes to Windows Audio System.

If you need multiple audio input methods, I highly recommend using RTL input, TCP with SDR++, or the TCP plugin with SDR#. Can't vouch for how well SDR# and the TCP plugin work however, seems like any new update to SDR# will come in and break everything, going by what other threads on this forum seem to indicate.

As far as output goes, same thing, can't select devices internally, need to use a mixer to route them externally. Either that, or use Icecast or UDP output (audio_work version). See here.
 

Bote

know-it-all
Feed Provider
Joined
Dec 19, 2002
Messages
1,074
Location
Ft. Lauderdale, FL, U.S.A.
seems like any new update to SDR# will come in and break everything, going by what other threads on this forum seem to indicate.

SDRsharp will use the config files in the directory from which it is executed. So when I upgrade SDR# I create a new directory for it, install it, and then copy the files with the most recent time stamps on them. This seems to retain the window layout, frequencies, bandwidth, and other settings.

Recent developments in WebRTC have pushed Firefox and Chrome developers to incorporate more robust audio switching, and Windows 10 and newer have a pretty usable audio matrix. Right-click the speaker icon in the Windows try, then scroll down to "Advanced sound options" and click the button below it that doesn't even look like a button (thanks, Micro$oft!) labeled "App volume and device preferences" to see what can be done there. I make extensive use of that on Win10 and it can be very useful.
 

ki4hyf

Member
Premium Subscriber
Joined
Mar 2, 2005
Messages
208
Location
Jackson, TN
FWIW, I can confirm that on the P25 P1 system I monitor, the audio_work branch Whitelisting works as expected, as does Talkgroup Hold. I can't think of any improvements I'd like to see. I definitely appreciate all of the hard work that went into making this the best (IMHO) sdr program that I know of.
 
Top