RTL-SDR: GQRX and DSD decoding in GNU/Linux command line.

Video is ready, Click Here to View ×

1) Find the frequency. I am using GQRX
2) Use rtl_fm and dsd as I demonstrate on the screencast.

Most of the tutorials on SDR are using GUI tools such as SDR#. Here, I am demonstrasting how to decode DSD on command line. The gui tool; GQRX is only of scanning and find the frequency.

General reference

Thank you.

Software and tools.
Slackware64 GNU/Linux on MacBook Pro 15″ (mid-2010)
GNU Screen
NOOELEC brand DVB-T dongle.


  1. I am using Slackware GNU/Linux. :), since 1997.
    There are several ways to achieve what we want in Unux/Linux, and we can choose which suit the best for our need.

    I welcome any idea, steps and solution.

    Thank you.

  2. Thank you for the excelent tip. Yes, it is great for anyone who has Pulse Audio installed.
    Someday, I may upgrade my system to use Pulse Audio.

    Thank you again. šŸ™‚

  3. To decode directly from gqrx use snd-aloop driver:
    1) modprobe snd-aloop
    2) start gqrx and select the loopback sound device
    3) padsp — dsd -i /dev/dsp -o /dev/dsp
    4) use pavucontrol to set monitoring device for padsp/dsd

  4. Another trick to listen the dsd output is by playing the output file with "-w" option using ffplay. ffplay will continue to play the file even dsd sitll writing the stream to the fhe file. Yes, since the dsd wrote the demodulated sound to the file, we can 'rewind', pause and fast forward the 'stream' šŸ™‚

    Finally we can convert the wav file to more efficient audio codec for archiving.

  5. Thank you for your suggestions.
    1) My system; Slackware64 13.x does not come with PualsAudio, so I am using what is available.
    2) I already installed Pulseaudio from GIT, and sitll need time to learn.
    3) Yes, dsd use /dev/audio and it able to stream tho ALSA, but, default sampling rate for /dev/audio is 8kHz and dsd output is 48kHz, so, I got high pitched sound.
    4) In this clip, I used the sound from, file test.wav from dsd "-w" output.

  6. I am still new on SDR and it's tools. I tried several ways to pipe rtl_fm stream to dsd, especially for sampling rate and channel conversion, but not working as smooth as I wanterd.

    I am using piped file trick, "mkfifo pipe.wav"; and set output sampling rate to 48k in rtl_fm and stream it to pipe.wav.

    I used 2 ternimals for clean demo; but we can use single terminal like this:

    $ dsd -i pipe.wav & rtl_fm -f … -s 48k > pipe.wav

    I hope it works on your setup, and good luck.

    Thank you.

  7. Hello, How it make with Ubuntu 12.04 ?
    I tried it with padsp but with no result …

    padsp — dsd -i pipe.wav -w test.wav


    sudo rtl_fm -f 173.795M -s 32k -C -F|padsp — dsd -i /dev/stdin -o /dev/audio

    The play audio works :
    sudo rtl_fm -f 173.795M -s 32k -C -F|play -r 32k -t raw -e signed-integer -b 16 -c 1 -V1 –

    with Regards

Leave a Reply

Your email address will not be published.