DSD+ and DSDtune

Status
Not open for further replies.

aquaregia

Member
Premium Subscriber
Joined
Sep 23, 2010
Messages
25
So, since there's no license available for DSD+ 1.023, I went ahead and unpacked, disassembled, and decompiled it. If anyone wants the pseudocode for research, let me know.

DSDtune 0.0.4b from Github seems to be broken, as it can't find dsd.exe or dsdplus.exe, even with the -x option. 0.0.3 works fine, but since I mostly use DSD/DSD+ for ProVoice, omitting the -ds, -dd, and -dv flags from the tuning process would be much appreciated. I did compile with cygwin instead of mingw, so maybe that's it. Github only has DSDtune 0.0.4b from source, so I'm not sure if cygwin is the problem.
 

Forts

Mentor
Database Admin
Joined
Dec 19, 2002
Messages
6,688
Location
Ontario, Canada
I'd love to see a copy if you get a chance... been trying to get a better understanding of how this stuff works.
 

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
I think I was working on getting it to compile in cygwin. Guess I lost steam on that.
Tonight I will compile the latest code and post it to the github downloads.

Sent from my MB886 using Tapatalk
 

aquaregia

Member
Premium Subscriber
Joined
Sep 23, 2010
Messages
25
Tried MinGW, and cygwin. I suppose I could try getting it to work in Visual Studio, but...
 

Attachments

  • Capture.PNG
    Capture.PNG
    15.8 KB · Views: 1,650

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
I just uploaded dsdtune 0.0.4 Release to the dsdtune github.

https://github.com/dreinhold/dsdtune/releases/tag/v0.0.4

The changes from 0.0.3 are

  • Skip tuning options -ds -dd -dv if Provoice or D-Star is selected (-fp -fd)
  • Allow -xx (Expect inverted X2-TDMA signal) to pass to dsdplus
  • Log to dsdtune.log
  • Auto search for dsdplus.exe first, if not found try dsd.exe
  • Allow -mp (optimize for PSK modulation) to pass to dsdplus
 

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
What does this command output.
Code:
dsdplus.exe < DSDPlus.wav -o0 -O NUL -fp -dr1

dsdtune is looking for
decoding score = xxx
At the end when dsdplus runs.
 
Last edited:

slicerwizard

Member
Joined
Sep 19, 2002
Messages
7,643
Location
Toronto, Ontario
Try it yourself.

You can't feed DSD+'s output file to it as input.

Code:
dsdplus.exe < DSDPlus.wav -o0 -O NUL -fp -dr1

DSDPlus  Rev 1.023
Disabling audio output to soundcard
NOT saving synthesized audio to DSDPlus.mp3
Decoding only ProVoice
Rolloff index set to 1

Reading from STDIN
Input file is not a 48 kHz or 96 kHz .wav file
WAV header processing error - aborting
 

aquaregia

Member
Premium Subscriber
Joined
Sep 23, 2010
Messages
25
While it makes sense, slicerwizard, I tried renaming the file and get the same result.
 

deboe

Member
Joined
Dec 19, 2002
Messages
142
Location
0x045C
Try it yourself.

You can't feed DSD+'s output file to it as input.

Correct you cannot.
You need to feed the raw input file back into dsdplus to get a decode score.

dsdtune just has one error message when dsdplus does not return a decode score so it makes it hard to see what went wrong.
I added an issue so I can remember to update it to report the error about bad wav file as input.
https://github.com/dreinhold/dsdtune/issues/8

So aquaregia if you get the error like slicerwizard showed when running dsdplus, it's just saying dsdplus cannot read your wav.

Make sure you are creating the wav with dsdplus using the R option to capture 15 to 30 seconds of transmissions.
dsdplus will name the "raw input" as somthing like DSDPlus-Raw-Input_2014-04-03@191422.wav.

Then you use that Raw-Input file and feed that into dsdplus or dsdtune.

Sample run with dsdplus
Code:
E:\sdr\dsd\dsdplus>dsdplus < DSDPlus-Raw-Input_2014-04-03@191422.wav -f1 -o0 -O NUL

DSDPlus  Rev 1.023
Decoding only P25 Phase 1 and X2-TDMA
Disabling audio output to soundcard
NOT saving synthesized audio to DSDPlus.mp3

Reading from STDIN
Processing 96000Hz 16bit mono WAV data

audio output device #1 = 'Speakers (High Definition Audio'
audio output device #2 = 'Line 3 (Virtual Audio Cable)'
audio output device #3 = 'Line 2 (Virtual Audio Cable)'
audio output device #4 = 'Line 4 (Virtual Audio Cable)'
audio output device #5 = 'Line 1 (Virtual Audio Cable)'
audio output device #6 = 'Digital Audio (S/PDIF) (High De'


Mono audio decoding initiated; press Ctrl-C to exit...
Sync:-P25p1 NAC:1F5 LDU2    e:26r113221
Sync:-P25p1 NAC:1F5 LDU1    e:1143227r
Sync: no sync
Sync:-P25p1 NAC:1F5 LDU1    e:122547r6r21
Sync:-P25p1 NAC:1F5 LDU2    e:223346r46rBr
>>>>>>SNIP<<<<<<<<<
Sync:-P25p1 NAC:1F5 LDU2    e:52333221
Sync:-P25p1 NAC:1F5 LDU1    e:431ErDrDrDrDrCr
Sync:-P25p1 NAC:1F5 TDU
Sync:-P25p1 NAC:1F5 TDULC
Sync:-P25p1 NAC:1F5 HDU

8.0 seconds (128,000 bytes) of synthesized audio appended to 'DSDPlus.wav'

decoding score = 13,922

So all dsdtune does is the same thing but looks for the decoding score to keep track of which setting had the best score.
 

rjschilder

Member
Joined
Aug 4, 2004
Messages
166
Location
AES FTW
Can you send me a copy of the psuedocode? PM me :)

So, since there's no license available for DSD+ 1.023, I went ahead and unpacked, disassembled, and decompiled it. If anyone wants the pseudocode for research, let me know.

DSDtune 0.0.4b from Github seems to be broken, as it can't find dsd.exe or dsdplus.exe, even with the -x option. 0.0.3 works fine, but since I mostly use DSD/DSD+ for ProVoice, omitting the -ds, -dd, and -dv flags from the tuning process would be much appreciated. I did compile with cygwin instead of mingw, so maybe that's it. Github only has DSDtune 0.0.4b from source, so I'm not sure if cygwin is the problem.
 
Status
Not open for further replies.
Top