DSD improvements I am working on

Status
Not open for further replies.

racingfan360

Member
Joined
Dec 19, 2005
Messages
1,191
Eric - thank you for all your work on this.

A very quick test on this....to confirm:
I am getting good decodes on Conventional MotoTRBO [windsd.exe -i pa:1 -o pa:9 -mg]
I am getting good decodes on Conventional NX4800 [windsd.exe -i pa:1 -o pa:9 -mg -fi]
I am getting no decodes on Conventional NX9600 [using windsd.exe -i pa:1 -o pa:9 -mg or windsd.exe -i pa:1 -o pa:9 -mg -fn]

For others coming to this, as Eric says please do read the README to get your audio devices setup (the pa: bits above).

Jim
 

Moeder

Member
Joined
Sep 7, 2014
Messages
4
Needs option -l for NXDN here

Hi Eric,

thank you very much for following my request! I guess there's many people out there now very grateful to you ;-)

On my NXDN96 and 48 signals on either discriminator tap via line in or RTL-SDR via VB Cable it needed the option -l to successfully work. Maybe it has something to do with how different input sample rates effect your optional filtering? Just a blind guess...
 

racingfan360

Member
Joined
Dec 19, 2005
Messages
1,191
Some further observations as my testing continues Eric (aimed at hopefully being helpful to you):

I have focused on NXDN4800 testing:
Distinguishing between Kenwood conventional and trunking - consistently accurate
No decoding of IDAS trunking
Mobile or Repeater - consistently accurate
RAN - consistently accurate
Call Type - maybe 80% consistent
SI and DI decode - not always consistent, especially on mobile decodes (maybe 50% accuracy ??)
Detecting clear voice or encrypted - consistently accurate

Very limited/initial testing against DMR shows much better levels of accuracy of decode.

In general, all voice decode quality (DMR and NXDN) is severely degraded vs DSD+.

I would add that it is very sensitive to invl level - best decodes seem to be around 50% level for me.

Eric - Is there a way to direct the output audio to null please?

Appreciate your work on this.

Jim
 

EricCottrell

Member
Premium Subscriber
Joined
Nov 8, 2002
Messages
2,415
Location
Boston, Ma
Hello,

The problem with 12.5 KHz NXDN is likely due to the 6.25 KHz filter being used for both. This problem is in the main dsd repository, so a Linux build of the current dsd repository would have the same problem.

I am wondering if PortAudio might up-convert the input sample rate from 44.1 KHz to 48 KHz. Some audio libraries will do it, which really messes up data decoding. I set my sound devices to have a default sampling rate of 48000 on the advanced tab located in the sound device properties dialog. I am also using a USB audio device for input and the built-in laptop sound for the output.

So some things to fix and some things to test.

73 Eric
 

EricCottrell

Member
Premium Subscriber
Joined
Nov 8, 2002
Messages
2,415
Location
Boston, Ma
Hello,

Setting the default sampling rate at 44100 on the laptop audio devices did not make a difference. I did confirm using the 6.25KHz filter for 12.5KHz does cause a problem. So Version 1 decodes 12.5KHz NXDN poorly. I will commit a fix and submit a pull request to get the fix in the upstream code.

73 Eric
 

Moeder

Member
Joined
Sep 7, 2014
Messages
4
Eric,

I just came to the same conclusion as you did. Varying input Sr on Windows Vista didn't affect decoding. As my main interest are the data packets rather than voice itself, version 1 surely serves it's purpose, although it is really very dependent on a correct setting of the input level.

73, Timo
 

EricCottrell

Member
Premium Subscriber
Joined
Nov 8, 2002
Messages
2,415
Location
Boston, Ma
Hello,

Here is new build, v2. As always, read the README file for more info.

http://www.radiophile.info/WinDSD/WinDSDv2.zip

This version fixes the 12.5KHz NXDN filter problem. I also tweaked the PortAudio settings as I got occasional overruns. I reduced their effect, but did not totally eliminate them. I hate having to focus on debugging audio problems when I want to focus on DMR and NXDN decoding.

I was listening to a 12.5KHz NexEdge system and got good decoding of both control channel and voice channels. I mapped out all the frequencies used by the site. It is a very busy system this morning.

73 Eric
 

nd5y

Member
Joined
Dec 19, 2002
Messages
12,027
Location
Wichita Falls, TX
V2 works on the local 12.5k NEXEDGE conventional repeaters.

I get occasional strings of errors that look like:
An error occured while using the portaudio input stream
Error number: -9981
Error message: Input overflowed
Frames available: 8982


The error number is always -9981 but the frames available number varies.

It may be my laptop is too slow or something. DSD and DSD+ don't decode perfectly either.
 

EricCottrell

Member
Premium Subscriber
Joined
Nov 8, 2002
Messages
2,415
Location
Boston, Ma
V2 works on the local 12.5k NEXEDGE conventional repeaters.

I get occasional strings of errors that look like:
An error occured while using the portaudio input stream
Error number: -9981
Error message: Input overflowed
Frames available: 8982


The error number is always -9981 but the frames available number varies.

It may be my laptop is too slow or something. DSD and DSD+ don't decode perfectly either.
Hello,

I have a fast laptop and get the same errors. I put in the Frames available code in to see what the backlog is. It also throws away 10 samples to help clear the error.

I tried using a bigger buffer and the result was an increased number of error messages with a larger Frames available count. It appeared like PortAudio just stopped processing audio for a short time period that seems to grow with increased buffer size.

I suspect it may be a problem with PortAudio. I may add some timestamps to see how long it takes PortAudio to return a sample on input.

I used the "stable" version of PortAudio dated January of 2014. I may try the latest version as I see an issue logged involving underflows/overflows in the Windows MME support.
https://www.assembla.com/spaces/portaudio/tickets/117#/activity/ticket

PortAudio is a recent addition to the dsd codebase and the blocking I/O method used by dsd is a recent addition to PortAudio. So this is really fresh code.

Some better news is references seen about being able to compile the ncurses package under mingw and have it work in Windows. This would be great as I could make an easier to read formatted display screen that would work in both Linux and Windows.

An alternative would be to use an Application Framework that would work on both Linux and Windows, like Qt. Qt has Audio classes in addition to windowing display classes. This would require a major rewrite of the code and I would consider new c++ code development instead.

73 Eric
 

n4yek

Member
Joined
Apr 20, 2004
Messages
2,520
Location
Cosby, Tennessee
Hello,

Here is new build, v2. As always, read the README file for more info.

http://www.radiophile.info/WinDSD/WinDSDv2.zip

This version fixes the 12.5KHz NXDN filter problem. I also tweaked the PortAudio settings as I got occasional overruns. I reduced their effect, but did not totally eliminate them. I hate having to focus on debugging audio problems when I want to focus on DMR and NXDN decoding.

I was listening to a 12.5KHz NexEdge system and got good decoding of both control channel and voice channels. I mapped out all the frequencies used by the site. It is a very busy system this morning.

73 Eric

Eric,
This version is decoding the Nexedge NXDN 6.25 kHz trunk system in Sevier County TN at about 70% success with the errors that nd5y is getting.
It decodes the voice and shows which RAN is being transmitted, SI and DI information.
The Control Channel data stream shows System ID, Nexedge Trunk, Site, RAN, and Control Channel number.

Thanks a bunch...
Danny
 
Last edited:

n4yek

Member
Joined
Apr 20, 2004
Messages
2,520
Location
Cosby, Tennessee
One more thing to add Eric,
The frequencies for this trunk system use the Part 22 Pager freqs. Here is a link describing the channel layout:
http://forums.radioreference.com/te...ounty-public-service-systems.html#post2249464

I do have a question, when looking at the data, I see these words: TX_REL_EX, Cause: 2-15, and DISC in the datastream. I see no mention of those in the Read Me file and was just curious to what those mean.
Thanks
 
Last edited:

kd7kdc

Completely Banned for the Greater Good
Banned
Joined
Jan 18, 2005
Messages
642
I just downloaded windsd v2 and ran it using a funcube stick and sdr# fed into vb cable. No luck with the local nxdn trunk system. I either get -9981 input overflow or nothing at all. Playing with the input sampling rate dose seem to affect which of the fore mentioned responses I get.
 

mciupa

Canadian DB Admin
Moderator
Joined
Nov 5, 2002
Messages
8,662
Location
I'm here a lot
Audio for both DMR and NXDN is superb using a discriminator tapped Pro-2032 with WinDSDv2 and control channel data stream shows all details for Nexedge, DMR and P25 1.

Bravo Eric! :)
 

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
I thought I would give this a try, but something is wrong, when I click on WinDSD.exe a window opens, and then just closes.
What am I doing wrong?

Just like dsd/dsd+ windsd is also a command line program. So you need to run it from the command window.
 

RonnieUSA

Member
Joined
Aug 8, 2005
Messages
2,149
Location
Rowan County,KY (Morehead)
I noticed when You enable logging it doesn't send any thing to the screen, just to the log file. Is there a fix so I can see it both ways? Here is the switch I'm using >logfile.
 
Last edited:
Status
Not open for further replies.
Top