Code Monkey home page Code Monkey logo

dsd's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dsd's Issues

README doesn't include cmake as a build requirement

This is relevant since cmake isn't necessarily installed by default.

It might be worth adding that mbelib and dsd can be built in Cygwin (preferably Cygwin32 as I've run into several annoying bugs in some packages).

nxdn sync

In the file dsd.h, I can find the sync
#define NXDN_MS_DATA_SYNC "313133113131111333"
#define INV_NXDN_MS_DATA_SYNC "131311331313333111"
#define NXDN_MS_VOICE_SYNC "313133113131113133"
#define INV_NXDN_MS_VOICE_SYNC "131311331313331311"
#define INV_NXDN_BS_DATA_SYNC "131311331313333131"
#define NXDN_BS_DATA_SYNC "313133113131111313"
#define INV_NXDN_BS_VOICE_SYNC "131311331313331331"
#define NXDN_BS_VOICE_SYNC "313133113131113113"
But in the file NXDN Technical Specification Part 1 Airface chapter 4.4.4 Frame Sync Word, I can find only 0xCDF59(SYNC). The sync in protocol is shorter than the one in the header file.
Is there anyone can tell me in which file , I can find the complete sync of NXDN. Thank you!

DSD Makefile missing

Prior to 12-16-2013, DSD had a Makefile. None exists now, and thus it is not possible to issue a 'make' to build DSD.

Wishlist: P25 control channel decoding?

Hi,

First off, thanks very much for this great utility. Just FYI, I've been able to get voice stats off P25 using this in conjunction with rtl_fm:

rtl_fm -f XXXXX -p 49 -s 48000 -g 25 -M fm | dsd -i - -o /dev/null -v99 -g25

(Please let me know if you have any suggestions re: these options, but right now they seem to work well).

I'm hoping to get more info from the P25 control channel, and unfortunately my C++/SDR skills are pretty much nonexistent. Any way this could be placed on the roadmap, or have I overlooked this functionality?

Make Error

I'm getting this when trying to run make after cmake.

CMakeFiles/dsd.dir/src/dsd_mbe.c.o: In function playMbeFiles': dsd_mbe.c:(.text+0x2dd): undefined reference to mbe_processAmbe2450Dataf'
CMakeFiles/dsd.dir/src/dsd_mbe.c.o: In function processMbeFrame': dsd_mbe.c:(.text+0x6be): undefined reference to mbe_processAmbe3600x2400Framef'
dsd_mbe.c:(.text+0x78f): undefined reference to `mbe_processAmbe3600x2450Framef'
collect2: error: ld returned 1 exit status
CMakeFiles/dsd.dir/build.make:981: recipe for target 'dsd' failed
make[2]: *** [dsd] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/dsd.dir/all' failed
make[1]: *** [CMakeFiles/dsd.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

It's on a system running Mint 18.1 64 bit.

It seems that DSD crash when there is two audio slots active at the same time. (mototrbo)

It seems that DSD crash when there is two audio slots active at the same time. (mototrbo)
it Sometimes keep on working but only decode one slot from then onwards.
It seems to switch to a slot and disable the other slot until restart.
(Maybe its a mono / stereo ALSA problem ?)(What format is the stream to ALSA?)
Maybe sending slot0 to Left and slot1 to Right audio channel mite fix the problem. (stereo)
System details.

  1. Linux uname -a
    Linux anton-Laptop-sdr-610 3.8.0-33-generic #48~precise1-Ubuntu SMP Thu Oct 24 16:31:16 UTC 2013 i686 i686 i386 GNU/Linux
  2. DSD 1.7.0-dev
  3. RTL v0.5.3
  4. sudo rtl_fm -d0 -f 438.225M -p39 -s 48K | sudo dsd -fr -i - -o pa:1

I think it happened about here in the log.

Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: C4FM inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: C4FM inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 TLC
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 9% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 9% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 9% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 9% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 9% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle

here is the example and error I get when the other slot1 gets audio
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] VOICE Header
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] VOICE Header
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
An error occured while using the portaudio output stream
Error number: -9980
Error message: Output underflowed
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
An error occured while using the portaudio output stream
Error number: -9980
Error message: Output underflowed
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:
Sync: +DMR mod: GFSK inlvl: 8% slot0 [SLOT1] VOICE e:=
An error occured while using the portaudio output stream
Error number: -9980
Error message: Output underflowed

DSD does not compile on Ubuntu 14.04

Hi,

Ubuntu 14.04 Linux version 3.13.0-39-generic ,
newest version mbelib and ittp were compiled and installed with no problem.
But dsd produces following failures:

:~/DMR/szechyjs/dsd/build$ make
[ 2%] Building C object CMakeFiles/dsd.dir/pa_devs.c.o
/DMR/szechyjs/dsd/pa_devs.c: In function ‘printPortAudioDevices’:
/DMR/szechyjs/dsd/pa_devs.c:14:5: error: unknown type name ‘PaStreamParameters’
PaStreamParameters inputParameters, outputParameters;
^
/DMR/szechyjs/dsd/pa_devs.c:21:13: warning: format ‘%s’ expects argument of type ‘char ’, but argument 3 has type ‘int’ [-Wformat=]
Pa_GetVersion(), Pa_GetVersionText() );
^
/DMR/szechyjs/dsd/pa_devs.c:45:52: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
else if( i == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultInputDevice )
^
/DMR/szechyjs/dsd/pa_devs.c:47:13: error: unknown type name ‘PaHostApiInfo’
const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
^
/DMR/szechyjs/dsd/pa_devs.c:47:74: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
^
/DMR/szechyjs/dsd/pa_devs.c:48:51: error: request for member ‘name’ in something not a structure or union
printf( "[ Default %s Input", hostInfo->name );
^
/DMR/szechyjs/dsd/pa_devs.c:58:52: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
else if( i == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultOutputDevice )
^
/DMR/szechyjs/dsd/pa_devs.c:60:13: error: unknown type name ‘PaHostApiInfo’
const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
^
/DMR/szechyjs/dsd/pa_devs.c:60:74: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
^
/DMR/szechyjs/dsd/pa_devs.c:62:51: error: request for member ‘name’ in something not a structure or union
printf( " Default %s Output", hostInfo->name );
^
/DMR/szechyjs/dsd/pa_devs.c:79:85: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
printf( "Host API = %s\n", Pa_GetHostApiInfo( deviceInfo->hostApi )->name );
^
/DMR/szechyjs/dsd/pa_devs.c:82:68: error: ‘PaDeviceInfo’ has no member named ‘defaultSampleRate’
printf( "Default sample rate = %8.2f\n", deviceInfo->defaultSampleRate );
^
make[2]: *
* [CMakeFiles/dsd.dir/pa_devs.c.o] Fehler 1
make[1]: *** [CMakeFiles/dsd.dir/all] Fehler 2
make: *** [all] Fehler 2

I have no clue what can be done to solve this. Thanks a lot in advance for any help.

Fred

Wishlist: parseable output format

Each of the different voice formats has a different text output format. These have probably evolved over time and were largely meant for eyeball consumption. A uniform format for script parsing would be nice to have. Perhaps JSON objects listing the type of sync and sub-elements based on the type, eg: talkgroup and source IDs for P25, DMR; callsigns for D-STAR, etc.

Error with make of dsd

I'm on Linux Mint Mate 17.1 64bit and I'have got an error when I make dsd.

$ cd /tmp/
$ apt-get install git make cmake g++ libsndfile1-dev fftw3-dev liblapack-dev libportaudio-dev

No error

IT++ :

$ wget -q -O itpp-latest.tar.bz2 http://sourceforge.net/projects/itpp/files/latest/download?source=files
$ tar xjf itpp-latest.tar.bz2
$ cd itpp-*
$ mkdir build && cd build
$ cmake ..
$ make -j
$ make install
$ cd ../..
$ rm -r itpp-*

No error

mbelib :

$ git clone https://github.com/szechyjs/mbelib.git
$ cd mbelib
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install
$ cd ../..
$ rm -rf mbelib

No error

DSD :

$ git clone https://github.com/szechyjs/dsd.git
$ cd dsd
$ mkdir build
$ cd build
$ cmake ..
$ make
Scanning dependencies of target dsd
[  2%] Building C object CMakeFiles/dsd.dir/p25p1_ldu.c.o
[  4%] Building C object CMakeFiles/dsd.dir/p25p1_ldu2.c.o
[  6%] Building C object CMakeFiles/dsd.dir/p25p1_hdu.c.o
[  8%] Building C object CMakeFiles/dsd.dir/dsd_serial.c.o
[ 11%] Building C object CMakeFiles/dsd.dir/dsd_mbe.c.o
[ 13%] Building C object CMakeFiles/dsd.dir/pa_devs.c.o
/tmp/dsd/pa_devs.c: In function ‘printPortAudioDevices’:
/tmp/dsd/pa_devs.c:14:5: error: unknown type name ‘PaStreamParameters’
     PaStreamParameters inputParameters, outputParameters;
     ^
/tmp/dsd/pa_devs.c:21:13: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
             Pa_GetVersion(), Pa_GetVersionText() );
             ^
/tmp/dsd/pa_devs.c:45:52: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
         else if( i == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultInputDevice )
                                                    ^
/tmp/dsd/pa_devs.c:47:13: error: unknown type name ‘PaHostApiInfo’
             const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
             ^
/tmp/dsd/pa_devs.c:47:74: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
             const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
                                                                          ^
/tmp/dsd/pa_devs.c:48:51: error: request for member ‘name’ in something not a structure or union
             printf( "[ Default %s Input", hostInfo->name );
                                                   ^
/tmp/dsd/pa_devs.c:58:52: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
         else if( i == Pa_GetHostApiInfo( deviceInfo->hostApi )->defaultOutputDevice )
                                                    ^
/tmp/dsd/pa_devs.c:60:13: error: unknown type name ‘PaHostApiInfo’
             const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
             ^
/tmp/dsd/pa_devs.c:60:74: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
             const PaHostApiInfo *hostInfo = Pa_GetHostApiInfo( deviceInfo->hostApi );
                                                                          ^
/tmp/dsd/pa_devs.c:62:51: error: request for member ‘name’ in something not a structure or union
             printf( " Default %s Output", hostInfo->name );
                                                   ^
/tmp/dsd/pa_devs.c:79:85: error: ‘PaDeviceInfo’ has no member named ‘hostApi’
         printf( "Host API                    = %s\n",  Pa_GetHostApiInfo( deviceInfo->hostApi )->name );
                                                                                     ^
/tmp/dsd/pa_devs.c:82:68: error: ‘PaDeviceInfo’ has no member named ‘defaultSampleRate’
         printf( "Default sample rate         = %8.2f\n", deviceInfo->defaultSampleRate );
                                                                    ^
make[2]: *** [CMakeFiles/dsd.dir/pa_devs.c.o] Erreur 1
make[1]: *** [CMakeFiles/dsd.dir/all] Erreur 2
make: *** [all] Erreur 2

Fail

Have you got an idea to solve that ?

Installation Help

Hi, after installing dsd-master, mbelib, libsndfile, it++ on ubuntu 14.04, itried to run dsd but this error occur:
error while loading shared libraries: libmbe.so.1: cannot open shared object file : no such file or directory.
Please help!

Feature Request - MotoTrbo encryption

I would like somebody to possibly implement an encryption mode for basic privacy usage only from 1 - 255 to dsd1.70. I am not a programmer but surely someone out there is and capable of doing a little work on the side. Not forgetting that BP is a moto proprietary product

dsd ignores storing directory

Hello,

I am running dsd with the -d parameter like this:

dsd -i /dev/dsp -o /dev/dsp -fd -d /home/user/dsd-rec/

but the files are stored in the directory /home/user/ from where I start DSD.

BR
Apostolos

Unknown burst type: 1101 (mototurbo from rtl dongle)

When decoding mototurbo on Linux. I normally get the following error on the first two lines of decoding.

  1. Linux uname -a
    Linux anton-Laptop-sdr-610 3.8.0-33-generic #48~precise1-Ubuntu SMP Thu Oct 24 16:31:16 UTC 2013 i686 i686 i386 GNU/Linux

  2. DSD 1.7.0-dev

  3. RTL v0.5.3

  4. sudo rtl_fm -d0 -f 438.225M -p39 -s 48K | sudo dsd -fr -i - -o pa:1

Error from dsd
Sync: +DMR mod: QPSK inlvl: 10% slot0 [slot1] Unknown burst type: 1101
Sync: +DMR mod: C4FM inlvl: 9% [slot0] slot1 Unknown burst type: 1101
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 9% slot0 [slot1] RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 9% [slot0] slot1 RATE 3/4 DATA
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle
Sync: +DMR mod: GFSK inlvl: 8% [slot0] slot1 Slot idle
Sync: +DMR mod: GFSK inlvl: 8% slot0 [slot1] Slot idle

image

Can get audio from websdr http://zr6aic.giga.co.za:8902 frequency at 438.225Mhz (DMR sdr)

Feature request: Yaesu Fusion

Hi,

Are you going to make support for Yaesu Fusion? It look's that voice codec is the same so maybe to will be not so big problem.

Best regards

Piotr

Feature request: DPMR support

Hello,

I have practical problem where I have two DPMR stations, which are claimed to follow DPMR standard, but which do not work with each other. Problem seems to be not only with the voice codec, but also with the protocol itself as even messaging does not work.

DSD open source version does not have support for DPMR, only DSDPlus has, but DSDPlus does not have an option for more deeper stream analysis. It only detects when data or voice frame is received, it is able to detect data/voice frames on the data, which I'm supplying.

Is there any chance to add support for DPMR or are there any guidelines on what kind of modifications to demodulator should be done to get valid bit stream. Tried to play with current demodulators in DSD, but could not find valid DPMR frame sync which is given by DPMR specification: https://www.etsi.org/deliver/etsi_tr/102800_102899/102884/01.01.01_60/tr_102884v010101p.pdf DPMR is using 4FSK, but seems that there is no demodulator in DSD, which is capable to deal with it.

It would be really nice if DSD will have support for DPMR and DPMR stream dump for deeper analysis (for example, to Wireshark compatible format), it will allow to find classes of these cheap DPMR stations which are interoperable.

Thank you.

newb dsd

please email me [email protected]
using windows 8.1 hp laptop
i cant figure out how to download dsd 1.6 onto my compputer

dsd fails to build in linux amd64

-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found LibSndFile: /usr/lib/x86_64-linux-gnu/libsndfile.so
-- Found LibMbe: /usr/local/lib/libmbe.so
-- Found ITPP: /usr/lib/libitpp.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxxxxxxxxx/Downloads/dsd-master/build
xxxxxxxx@debian:~/Downloads/dsd-master/build$ make
Scanning dependencies of target dsd
[ 3%] Building C object CMakeFiles/dsd.dir/provoice.c.o
[ 7%] Building C object CMakeFiles/dsd.dir/p25p1_ldu2.c.o
[ 10%] Building C object CMakeFiles/dsd.dir/dsd_upsample.c.o
[ 14%] Building C object CMakeFiles/dsd.dir/dstar.c.o
[ 17%] Building C object CMakeFiles/dsd.dir/dsd_dibit.c.o
[ 21%] Building C object CMakeFiles/dsd.dir/p25p1_hdu.c.o
[ 25%] Building C object CMakeFiles/dsd.dir/dsd_serial.c.o
[ 28%] Building C object CMakeFiles/dsd.dir/dsd_mbe.c.o
[ 32%] Building C object CMakeFiles/dsd.dir/p25_lcw.c.o
[ 35%] Building C object CMakeFiles/dsd.dir/dsd_audio.c.o
[ 39%] Building C object CMakeFiles/dsd.dir/p25p1_ldu1.c.o
[ 42%] Building C object CMakeFiles/dsd.dir/nxdn96.c.o
[ 46%] Building C object CMakeFiles/dsd.dir/x2tdma_voice.c.o
[ 50%] Building C object CMakeFiles/dsd.dir/dsd_filters.c.o
[ 53%] Building C object CMakeFiles/dsd.dir/dmr_data.c.o
[ 57%] Building C object CMakeFiles/dsd.dir/dstar_header.c.o
[ 60%] Building C object CMakeFiles/dsd.dir/dsd_frame.c.o
[ 64%] Building C object CMakeFiles/dsd.dir/dsd_symbol.c.o
[ 67%] Building C object CMakeFiles/dsd.dir/dsd_file.c.o
[ 71%] Building C object CMakeFiles/dsd.dir/dsd_main.c.o
[ 75%] Building C object CMakeFiles/dsd.dir/x2tdma_data.c.o
[ 78%] Building C object CMakeFiles/dsd.dir/dmr_voice.c.o
[ 82%] Building C object CMakeFiles/dsd.dir/nxdn_voice.c.o
[ 85%] Building C object CMakeFiles/dsd.dir/dsd_frame_sync.c.o
[ 89%] Building C object CMakeFiles/dsd.dir/p25p1_tdulc.c.o
[ 92%] Building C object CMakeFiles/dsd.dir/nxdn_data.c.o
[ 96%] Building CXX object CMakeFiles/dsd.dir/p25p1_check_nid.cpp.o
[100%] Building C object CMakeFiles/dsd.dir/git_ver.c.o
Linking CXX executable dsd
CMakeFiles/dsd.dir/dsd_mbe.c.o: In function playMbeFiles': dsd_mbe.c:(.text+0x196): undefined reference tombe_processImbe4400Dataf'
dsd_mbe.c:(.text+0x2d6): undefined reference to mbe_processAmbe2450Dataf' CMakeFiles/dsd.dir/dsd_mbe.c.o: In functionprocessMbeFrame':
dsd_mbe.c:(.text+0x4ac): undefined reference to mbe_processImbe7200x4400Framef' dsd_mbe.c:(.text+0x5aa): undefined reference tombe_processImbe7100x4400Framef'
dsd_mbe.c:(.text+0x6ab): undefined reference to mbe_processAmbe3600x2400Framef' dsd_mbe.c:(.text+0x787): undefined reference tombe_processAmbe3600x2450Framef'
CMakeFiles/dsd.dir/dsd_main.c.o: In function main': dsd_main.c:(.text+0x1069): undefined reference tombe_printVersion'
collect2: error: ld returned 1 exit status
make[2]: *** [dsd] Error 1
make[1]: *** [CMakeFiles/dsd.dir/all] Error 2
make: *** [all] Error 2

Poor NXDN96 (12.5KHz) Performance

I noticed decoding of NXDN96 was poor with the upstream code I pulled. I noticed in dsd_symbol.c that the NXDN48 filter is used for both NXDN48 and NXDN96. I fixed the poor decode problem in my repository by using the DMR filter for NXDN96 as they have the same filtering requirements.
LinuxSheeple-E@0b07b78

bug in P25 DUID?

Hi all,

I'm looking through dsd_frame.c, and at https://github.com/szechyjs/dsd/blob/master/dsd_frame.c#L270-280 is where the 4-bit DUID is extracted. However, I notice that even though 2 dibits are read, only the most significant bits of each are used (and subsequently compared). Is this intentional?

The reason I ask is because the trunking protocol uses a DUID of 0x7 or 0xC which can't be represented by 2 bits.

Portaudio does not work on some chipsets

My guess is newer chipsets can't go down to 8000 natively. Will probably have to look up the native resolution of the device and upsample in the wrapper.

kjotte@daedalus:~/git/dsd/build$ pasuspender -- ./dsd -a
Digital Speech Decoder 1.7.0-dev (build:v1.6.0-73-g6a9aa07)
mbelib version 1.2.5
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)

PortAudio version number = 1899
PortAudio version text = 'PortAudio V19-devel (built Feb 25 2014 21:09:53)'
Number of devices = 14
--------------------------------------- device #0
Name                        = HDA Intel PCH: CX20590 Analog (hw:0,0)
Host API                    = ALSA
Max inputs = 2, Max outputs = 4
Default sample rate         = 44100.00
--------------------------------------- device #1
Name                        = HDA Intel PCH: HDMI 0 (hw:0,3)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #2
Name                        = HDA Intel PCH: HDMI 1 (hw:0,7)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #3
Name                        = HDA Intel PCH: HDMI 2 (hw:0,8)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #4
Name                        = sysdefault
Host API                    = ALSA
Max inputs = 128, Max outputs = 128
Default sample rate         = 48000.00
--------------------------------------- device #5
Name                        = front
Host API                    = ALSA
Max inputs = 0, Max outputs = 4
Default sample rate         = 44100.00
--------------------------------------- device #6
Name                        = surround40
Host API                    = ALSA
Max inputs = 0, Max outputs = 4
Default sample rate         = 44100.00
--------------------------------------- device #7
Name                        = surround51
Host API                    = ALSA
Max inputs = 0, Max outputs = 4
Default sample rate         = 44100.00
--------------------------------------- device #8
Name                        = surround71
Host API                    = ALSA
Max inputs = 0, Max outputs = 4
Default sample rate         = 44100.00
--------------------------------------- device #9
Name                        = hdmi
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #10
Name                        = pulse
Host API                    = ALSA
Max inputs = 32, Max outputs = 32
Default sample rate         = 44100.00
--------------------------------------- device #11
Name                        = dmix
Host API                    = ALSA
Max inputs = 0, Max outputs = 2
Default sample rate         = 48000.00
--------------------------------------- device #12
[ Default Input, Default Output ]
Name                        = default
Host API                    = ALSA
Max inputs = 32, Max outputs = 32
Default sample rate         = 44100.00
--------------------------------------- device #13
[ Default OSS Input, Default OSS Output ]
Name                        = /dev/dsp
Host API                    = OSS
Max inputs = 16, Max outputs = 16
Default sample rate         = 44100.00
----------------------------------------------
kjotte@daedalus:~/git/dsd/build$ ./scan.sh | pasuspender -- ./dsd -i /dev/stdin -o pa:0 -f1
Digital Speech Decoder 1.7.0-dev (build:v1.6.0-73-g6a9aa07)
mbelib version 1.2.5
Decoding only P25 Phase 1 frames.
Initializing portaudio.
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
Using portaudio device 0.
Name                        = HDA Intel PCH: CX20590 Analog (hw:0,0)
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2722
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
An error occured while initializing a portaudio stream
Error number: -9997
Error message: Invalid sample rate

CMake error

DSD commit: 7ee04e5
itpp version: 4.3.1
mbelib version: 1.3.0
OS: Fedora Linux 25 [x86-64]
CMake version: 3.8.0

Steps to Reproduce:

mkdir build
cd build
cmake ..
-- Found LibSndFile: /usr/lib64/libsndfile.so
-- Found LibMbe: /usr/local/lib/libmbe.so
-- Found ITPP: /usr/local/lib/libitpp.so
-- Checking for module 'portaudio-2.0'
--   Found portaudio-2.0, version 19
CMake Warning (dev) at test/CMakeLists.txt:13 (add_custom_target):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  The target name "test" is reserved or not valid for certain CMake features,
  such as generator expressions, and may result in undefined behavior.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/postmodern/src/dsd/build

Add sample input wav files for unit tesing

To assist with the unit testing of dsd input files will be necessary. It would be nice to come up with a collection of various types of raw input files that can be used for testing purposes.

cmake warning

Using cmake version 3.0.2 (mkdir build; cd build ; cmake ../)
I get a warning that test/CMakeLists.txt line 15 is using the target name "test" which is now reserved or not valid for certain CMake features, such as generator expressions, and may result in undefined behavior.
This warning is for project developers. Use -Wno-dev to suppress it.

I can use cmake -Wno-dev ../ and ignore it, but I thought I'd let you know.

PortAudio through PulseAudio does not work

OS is Ubuntu 14.04 LTS

kjotte@daedalus:~/git/dsd/build$ ./dsd -a
Digital Speech Decoder 1.7.0-dev (build:v1.6.0-73-g6a9aa07)
mbelib version 1.2.5
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave

PortAudio version number = 1899
PortAudio version text = 'PortAudio V19-devel (built Feb 25 2014 21:09:53)'
Number of devices = 7
--------------------------------------- device #0
Name                        = HDA Intel PCH: HDMI 0 (hw:0,3)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #1
Name                        = HDA Intel PCH: HDMI 1 (hw:0,7)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #2
Name                        = HDA Intel PCH: HDMI 2 (hw:0,8)
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #3
Name                        = hdmi
Host API                    = ALSA
Max inputs = 0, Max outputs = 8
Default sample rate         = 44100.00
--------------------------------------- device #4
Name                        = pulse
Host API                    = ALSA
Max inputs = 32, Max outputs = 32
Default sample rate         = 44100.00
--------------------------------------- device #5
[ Default Input, Default Output ]
Name                        = default
Host API                    = ALSA
Max inputs = 32, Max outputs = 32
Default sample rate         = 44100.00
--------------------------------------- device #6
[ Default OSS Input, Default OSS Output ]
Name                        = /dev/dsp
Host API                    = OSS
Max inputs = 16, Max outputs = 16
Default sample rate         = 44100.00
----------------------------------------------

kjotte@daedalus:~/git/dsd/build$ ./scan.sh | ./dsd -i /dev/stdin -o pa:5 -f1
Digital Speech Decoder 1.7.0-dev (build:v1.6.0-73-g6a9aa07)
mbelib version 1.2.5
Decoding only P25 Phase 1 frames.
Initializing portaudio.
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
Using portaudio device 5.
Name                        = default
Audio Out Device: pa:5
ioctl reset error 
ioctl speed error 
ioctl stereo error 
ioctl setfmt error 
Audio In Device: /dev/stdin
Sync:  +P25p1     mod: C4FM inlvl: 40% nac:  1F0 src:        0 tg: 51831  HDU
Sync:  +P25p1     mod: C4FM inlvl: 39% nac:  1F0 src:        0 tg: 51831  LDU1  e:=====
Syncing voice output stream
An error occured while using the portaudio output stream
Error number: -9983
Error message: Stream is stopped
=======R
Syncing voice output stream
An error occured while using the portaudio output stream
Error number: -9983
Error message: Stream is stopped
===
[and so on]
^C
Terminating portaudio.

Total audio errors: 251
Total header errors: 163
Total irrecoverable header errors: 12

+P25 BER estimate: 2.34%
-P25 BER estimate: 0.00%

Exiting.

Error Correction for Unit/Source ID in LCW

Is the Unit ID / Source ID covered by any error correction or detection? I am getting some really weird values for Source. I have been logging them, and I am getting a bunch of Source IDs that are high and only show up in a single LCW message.

Is there another P25 Message that also contains Source ID and is covered by error correction or detection?

Feature request: extracting raw data from data packet

I have compiled the dsd on Ubuntu 14.04LTS for purpose of extracting data from DMR data packets.
The only data I get out of it is on stdout info output.
I am running dsd in following way:
padsp -- dsd -i /dev/dsp -o /dev/dsp -v99 -n -fr -mc
while gqrx is tuned to the station.
This gives me this output:
....
Sync: +DMR o: 24 mod: C4FM g: 22.428268 inlvl: 100% [slot0] slot1 TLC
Sync: +DMR o: 24 mod: C4FM g: 22.428268 inlvl: 100% slot0 [slot1] RATE 1/2 DATA
Sync: +DMR o: 24 mod: C4FM g: 22.428268 inlvl: 99% [slot0] slot1 TLC
Sync: +DMR o: 24 mod: C4FM g: 22.428268 inlvl: 99% slot0 [slot1] RATE 1/2 DATA
Sync: +DMR o: 24 mod: C4FM g: 22.428268 inlvl: 99% [slot0] slot1 TLC
Sync: +DMR o: 24 mod: C4FM g: 22.428268 inlvl: 100% slot0 [slot1] CSBK
...

I looked through help menu and there it seems that there is no way to extract data or redirect data packet content.

Is this even possible with DSD?
My C knowledge is very rusty, but if someone would point where to look in the source, I would be very happy.

This is a very similar request: #37

Thanks a lot!

Sergei.

P.S. I occasionally get segfaults, like so:
segfault at 7f5b88ffd000 ip 0000000000413252 sp 00007fff4ece1a40 error 7 in dsd[400000+2e000]

ld: symbol(s) not found for architecture x86_64 when building on OS X Mavericks

I am not able to compile DSD on OS X with the latest version of XCode (5).

Here is the complete build trace

λ mba build → λ git master → cmake ..
-- The C compiler identification is Clang 5.0.0
-- The CXX compiler identification is Clang 5.0.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found LibSndFile: /usr/local/lib/libsndfile.dylib
-- Found LibMbe: /usr/local/lib/libmbe.dylib
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/bourgeois/dsd/build
λ mba build → λ git master → make
Scanning dependencies of target dsd
[  3%] Building C object CMakeFiles/dsd.dir/dmr_data.c.o
[  7%] Building C object CMakeFiles/dsd.dir/dmr_voice.c.o
[ 11%] Building C object CMakeFiles/dsd.dir/dsd_audio.c.o
[ 14%] Building C object CMakeFiles/dsd.dir/dsd_dibit.c.o
[ 18%] Building C object CMakeFiles/dsd.dir/dsd_file.c.o
[ 22%] Building C object CMakeFiles/dsd.dir/dsd_filters.c.o
[ 25%] Building C object CMakeFiles/dsd.dir/dsd_frame.c.o
[ 29%] Building C object CMakeFiles/dsd.dir/dsd_frame_sync.c.o
[ 33%] Building C object CMakeFiles/dsd.dir/dsd_main.c.o
[ 37%] Building C object CMakeFiles/dsd.dir/dsd_mbe.c.o
/Users/bourgeois/dsd/dsd_mbe.c:54:15: warning: implicit declaration of function
      'mbe_processAmbe2450Dataf' is invalid in C99
      [-Wimplicit-function-declaration]
              mbe_processAmbe2450Dataf (state->audio_out_temp_buf, &stat...
              ^
/Users/bourgeois/dsd/dsd_mbe.c:107:7: warning: implicit declaration of function
      'mbe_processAmbe3600x2400Framef' is invalid in C99
      [-Wimplicit-function-declaration]
             mbe_processAmbe3600x2400Framef (state->audio_out_temp_buf, ...
             ^
/Users/bourgeois/dsd/dsd_mbe.c:115:7: warning: implicit declaration of function
      'mbe_processAmbe3600x2450Framef' is invalid in C99
      [-Wimplicit-function-declaration]
      mbe_processAmbe3600x2450Framef (state->audio_out_temp_buf, &state-...
      ^
3 warnings generated.
[ 40%] Building C object CMakeFiles/dsd.dir/dsd_serial.c.o
[ 44%] Building C object CMakeFiles/dsd.dir/dsd_symbol.c.o
[ 48%] Building C object CMakeFiles/dsd.dir/dsd_upsample.c.o
[ 51%] Building C object CMakeFiles/dsd.dir/dstar.c.o
[ 55%] Building C object CMakeFiles/dsd.dir/dstar_header.c.o
[ 59%] Building C object CMakeFiles/dsd.dir/nxdn96.c.o
[ 62%] Building C object CMakeFiles/dsd.dir/nxdn_data.c.o
[ 66%] Building C object CMakeFiles/dsd.dir/nxdn_voice.c.o
[ 70%] Building C object CMakeFiles/dsd.dir/p25_lcw.c.o
[ 74%] Building C object CMakeFiles/dsd.dir/p25p1_hdu.c.o
[ 77%] Building C object CMakeFiles/dsd.dir/p25p1_ldu1.c.o
[ 81%] Building C object CMakeFiles/dsd.dir/p25p1_ldu2.c.o
[ 85%] Building C object CMakeFiles/dsd.dir/p25p1_tdulc.c.o
[ 88%] Building C object CMakeFiles/dsd.dir/provoice.c.o
[ 92%] Building C object CMakeFiles/dsd.dir/x2tdma_data.c.o
[ 96%] Building C object CMakeFiles/dsd.dir/x2tdma_voice.c.o
[100%] Building C object CMakeFiles/dsd.dir/git_ver.c.o
Linking C executable dsd
Undefined symbols for architecture x86_64:
  "_mbe_processAmbe2450Dataf", referenced from:
      _playMbeFiles in dsd_mbe.c.o
  "_mbe_processAmbe3600x2400Framef", referenced from:
      _processMbeFrame in dsd_mbe.c.o
  "_mbe_processAmbe3600x2450Framef", referenced from:
      _processMbeFrame in dsd_mbe.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [dsd] Error 1
make[1]: *** [CMakeFiles/dsd.dir/all] Error 2
make: *** [all] Error 2
λ mba build → λ git master → 

Also, for your information,

λ mba build → λ git master → cmake --version
cmake version 2.8.12.1
λ mba build → λ git master → make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0
λ mba build → λ git master → gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

Am I missing something ?

Thanks for your support !

Update: I think theses SO answers might be related to this issue:

http://stackoverflow.com/a/19637199
http://stackoverflow.com/a/19774902

NXDN metadata

Do you think it would be possible to include displaying NXDN metadata (especially User ID)?

Chopped audio on Raspberry

Tried to run DSD on Raspberry.

+DMR messages are printed out to console, seems to be able to decode.

But when audio is recorded to .wav file it is chopped, not possible to understand a single word.

Tried to use mbuffer thinking that pipe is not large enough to hold all the data when dsd is not able to consume fast enough, but it still the same.

Is ARM architecture supported by DSD/MBElib or is Raspberry not powerful enough to run it?

Anyone tried to use DSD successfully on Raspberry or other ARM device?

Build with Kali 1.0.7

hello

error in DSD make command

git clone https://github.com/LinuxSheeple-E/dsd
cd dsd
git checkout Feature/DMRECC

cd dsd
mkdir build
cd build
cmake ..
make

error

/usr/local/include/itpp/base/itassert.h:34:28: fatal error: itpp/itexports.h: Aucun fichier ou dossier de ce type
/usr/local/include/itpp/itbase.h:128:36: fatal error: itpp/base/base_exports.h: Aucun fichier ou dossier de ce type
/usr/local/include/itpp/itcomm.h:75:39: fatal error: itpp/comm/multilateration.h: Aucun fichier ou dossier de ce type

in french no file found : to resolve need to copy the specific file in the specific library

Second set of errors

/usr/local/lib/libitpp.so: undefined reference to itpp::g711_details::MuLaw_Properties::expansion_table' /usr/local/lib/libitpp.so: undefined reference toitpp::g711_details::G711_Base_Properties::compression_table'
/usr/local/lib/libitpp.so: undefined reference to `itpp::g711_details::ALaw_Properties::expansion_table'

problem with g711.cpp ? but what

thanks for answer

How do I make DSD read a P25 encoded audio file via stdin.

I have a P25 encoded audo sample in ogg format.

I wish to pipe this to DSD via stdin with the following command:

ogg123 -d raw -f - ~/Downloads/P25Audio.ogg | ./dsd -i - -o pa:1

However this appears to run the first command (which has an incrementing status bar, as below) THEN runs DSD which gives an output as if there wasn't anything to decode:

Time: 00:02.72 [00:20.69] of 00:23.41 (105.6 kbps) Output Buffer 77.8%

Is there a simpler way to achieve this? My reason for asking is that I have GQRX successfully streaming via UDP to DSD, but haven't managed to get a any useful audio out of DSD, possibly because I'm not getting a strong enough digital radio signal within GQRX (Which is a separate issue). I wish to pipe the sample ogg file to DSD to confirm this part is working, with GQRX out of the equation.

The command's full output is below:

ogg123 -d raw -f - ~/Downloads/P25Audio.ogg | ./dsd -i - -o pa:1

Audio Device:   RAW sample output

Playing: /Users/v/Downloads/P25Audio.ogg
Ogg Vorbis stream: 2 channel, 64000 Hz
ao_raw WARNING: Driver raw does not support automatic channel mapping;
	Routing only L/R channels to output.

Digital Speech Decoder 1.7.0-dev (build:v1.6.0-86-g7ee04e5) Buffer  22.2%  
mbelib version 1.3.0
Initializing portaudio.
Using portaudio device 1.
Name                        = Built-in Output
Audio Out Device: pa:1
Audio In Device: -
                                                                                
Done.
Terminating portaudio.

Total audio errors: 0
Total header errors: 0
Total irrecoverable header errors: 0

+P25 BER estimate: 0.00%
-P25 BER estimate: 0.00%

Exiting.

Help make error

[ 72%] Building CXX object CMakeFiles/dsd.dir/p25p1_check_nid.cpp.o
/home/opendv/dsd/p25p1_check_nid.cpp: In function 'int check_NID(char_, int_, char_, unsigned char)':
/home/opendv/dsd/p25p1_check_nid.cpp:58: error: no matching function for call to 'itpp::BCH::decode(itpp::bvec&, itpp::bvec&, itpp::bvec&)'
/usr/include/itpp/comm/bch.h:75: note: candidates are: virtual void itpp::BCH::decode(const itpp::bvec&, itpp::bvec&)
/usr/include/itpp/comm/bch.h:77: note: virtual itpp::bvec itpp::BCH::decode(const itpp::bvec&)
/usr/include/itpp/comm/bch.h:80: note: virtual void itpp::BCH::decode(const itpp::vec&, itpp::bvec&)
/usr/include/itpp/comm/bch.h:81: note: virtual itpp::bvec itpp::BCH::decode(const itpp::vec&)
make[2]: *_* [CMakeFiles/dsd.dir/p25p1_check_nid.cpp.o] Error 1
make[1]: *** [CMakeFiles/dsd.dir/all] Error 2
make: *** [all] Error 2

Use PortAudio library for audio I/O

Unless your running linux that is not cutting edge then getting audio input/output to work with dsd can be troublesome. I'd like to use PortAudio for this as it provides compatibility with Windows, Mac, and Unix systems.

Question on p25_raw_unencrypted.flac

Hi there. This is just a question, not a bug. I'm playing with the p25_raw_unencrypted.flac from the samples repository. Towards the end of the decoding there is an LDU with many errors:

Sync: +P25p1 mod: QPSK inlvl: 20% nac: 1F5 src: 4270002 tg: 7455 LDU1 e:==========R==========R==========R==========RM==========R==========R

I've been debugging this. Seems like in this LDU the IMBE words from 4 to 9 are all exactly the same, with a C0 which looks like:

data: (0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0)
golay23 parity: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

The parity is not correct for that data, hence the decoding errors. But I don't think it's an error. Since this is repeated exactly on 6 IMBE words I believe it's intentional. The BER for this sample is fairly low.

There are some special values for IMBE words to encode silence or tones, but they should come with a valid golay23 parity. This one doesn't.

If this is a special case, I cannot find it in the P25 documentation or anywhere else. Might this be specific to the radio device used? Some kind of non-standard value that got some meaning for the vendor? It's a the very end of the speech.

Extend audio bandwidth

From Boatanchor on RR:

The recovered P25 audio does seem a little 'narrow' compared to DSDPlus. DSD has a bandwidth of 0-3500Hz, whereas DSDPlus extends the high frequencies up to >4Khz. Many people say they prefer the DSDPlus audio (I'm not necessarily one of them, but it would be nice to be able to adjust the top end roll off / LPF point)

The output audio is constrained to the bandwidth that a short (32,768Hz) can support, we should probably use sf_write_float rather than clipping values to a short.

https://github.com/szechyjs/dsd/blob/master/dsd_audio.c#L184

dsd - .raw and .rawiq files sample format

Hi jared,

love your dsd its works great,
i'm a student, and i want to know more about the samples in .raw and .rawiq files,
i want to open them in matlab and see the signals, i know that the file data look like this 48k/16bits/mono/pcm, but how one sample of 16bit looks like? and what it presents?

Thank you.

Choppy Audio

Im decoding a p25 tunked system using unitrunker and DSD. Sometimes the decoded audio from DSD sounds very choppy. And happens a lot with different p25 signals whether it be trunked or not. I don't know if its an error in the decode or something but I do get little errors and sometimes the R and M symbols but I can't tell why since the signal is pretty strong.

EDIT I just found out when the audio is choppy it sometimes says Non-standard IMBE c0 detected, skipped. Or it also sometimes says Ignoring LDU2 not preceeded by LDU1.

Does that mean the signal is bad? When I listen to my own recorded raw audio the actual raw audio sounds pretty strong and barley any static or signal drops.

DSD needs to be modified to work on OS X since no /dev/audio device is present

As referenced in the following closed pull request DSD apparently needs to be modified to work on OS X.

#1

See also the FAQ section at the bottom of:
http://wiki.radioreference.com/index.php/Digital_Speech_Decoder_(software_package)

I am re-opening this as a separate issue since the cmake change that was the subject of the previously mentioned pull request was merged in and closed without addressing the /dev/audio issue.

I have a homebrew formula pull request ready to go which compiles and installs both DSD and mbelib with a one line 'brew install dsd' on OS X. I am reluctant to submit this pull request until I can test DSD locally with a sample file (e.g. a mototrbo capture from the discriminator tap of a scanner). The pull request for mbelib formula has already been submitted:

Homebrew/legacy-homebrew#21792

I'd love to see this working on OS X so I can capture signals using OS X SDR software or a scanner with a discriminator tap and feed them to DSD for realtime playback.

Heuristics Segmentation Fault

Hi - I am getting a segmentation fault from the new heuristics error correction. I have incorporated DSD into a gnuradio block and I am running several instance in parallel, so it could easily be that. However, I think there might be an error in the DSD code.

In p25p1_tdulc.c, on line 291 read_zeros gets called with new sequence set to zero.

As a result, sequence_broken for the first element of analog_signal_array is 0 on line 194.

Next contribute_heuristics is called. That brings us to line 186 of p25p1_heuristics.c.

prev_dibit = analog_signal_array[i-1].corrected_dibit;

This is in a for loop that sets i from 0 to 10. I am getting the segmentation fault when i=0 because a crazy value is pull from analog_signal_array is pulling a crazy value out and setting prev_dbit to it. This then gets passed to update_p25_heuristics and prev_dbit is used to pull the symbol heuristics:

sh = &(heuristics->symbols[previous_dibit][dibit]);

In short, it seems like in p25p1_tdulc.c, on line 291 new sequence should be set to 1. I made the switch and it seems to prevent the seg fault.

Also in p25p1_tdu.c on line 21, read_zeros is called with new sequence set to 1.

Question about CACH decoding

Hi everybody,

The specifications (TS 102 361-1) (see page 60/177) describe the CACH structure as follow:
cach

AT: (IDLE / BUSY)
TC: (CH1 / CH2)
LCSS: (Single, First, Last, Continuation)

Well, now this is how processDMRdata() read the TC bit:
cach_c

I really don't understand how we can get the "TC" bit like that, in my opinion we are taking the left bit of the byte[2] so we are in "LCSS". (bit 4)

Any ideas ?
Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.