QRQ CW qso'N over Gstreamer - Morse Code "audio OVER ip" using the FLAC Audio Codec

brief demo of what QRQ CW morse code audio tones sound like using the FLAC AUDIO CODEC on Gstreamer Pipelines

NOTE: the QRQ CW AUDIO you are hearing, if what the FLAC encoded CW AUDIO sounds like after decoding it finally on the LAPTOP(Lubuntu 18.04)

the QRQ CW AUDIO stream starts on the LAPTOP goes to the PI over wired Ethernet, through routers & switches... then the PI re-encodes what it is receiving from the laptop and sends it right back to the laptop(basically a loopback formation on the PI)

HERE ARE THE Gstreamer SCRIPTS USED: "gst-launch-1.0"

NOTE: the FLAC CODEC on GSTREAMER has a default quality encoding setting of "5" ...so...just to see how well the CW NOTE audio quality could be encoded and decoded using FLAC at its lowest quality setting, a FLAC QUALITY SETTING of "zero" was used...and it turned out...at "ZERO", FLAC encodes faster with less strain on the CPU... and there was no degradation of the final received CW NOTE spectrum or waveshape when decoding it back to CW AUDIO

send audio from LAPTOP to a Raspberry PI 2b
*******************************************************************
qrq@qrq:~$ gst-launch-1.0 -v jackaudiosrc ! audioconvert ! flacenc blocksize=128 quality=0 ! udpsink host=192.168.1.130 port=5005

receive audio from LAPTOP on the Raspberry PI 2b
*******************************************************************
pi@raspberrypi ~ $ gst-launch-1.0 -v udpsrc port=5005 ! flacparse ! flacdec ! audioconvert ! jackaudiosink buffer-time=60000 blocksize=128

send audio from the Raspberry PI 2b to the LAPTOP
*******************************************************************
pi@raspberrypi ~ $ gst-launch-1.0 -v jackaudiosrc ! audioconvert ! flacenc blocksize=128 quality=0 ! udpsink host=192.168.1.101 port=5006

receive audio from Raspberry PI2b on the LAPTOP
*******************************************************************
qrq@qrq:~$ gst-launch-1.0 -v udpsrc port=5006 ! flacparse ! flacdec ! audioconvert ! jackaudiosink buffer-time=60000 blocksize=128

NOTE: the CW that is heard is from a software cw keyboard is used to send a text file from TOM's , W4BQF , famous article about QRQcw
https://sites.google.com/site/tomw4bqf/copyingcwover70wpm

https://gstreamer.freedesktop.org/

Views: 151

Comment by Chuck aa0hw on January 31, 2019 at 11:49am

Here is an example of sending qrq cw over TCP IP OPUS AUDIO codec using GSTREAMER at 75 wpm

Test - sending a text FILE with the AD5DZ software CW KEYBOARD - to see if any audio dropouts would show up...using one computer to send the morse code audio tones form the cw keyboard - over the internet - using TCP IP OPUS audio packets - to the RECEIVING computer - both using TCP IP OPUS AUDIO Gstreamer PIPELINES

HERE ARE THE GSTREAMER SCRIPTS USED in this test:

SENDER
gst-launch-1.0 -v jackaudiosrc ! audio/x-raw, channels=1, rate=48000 ! audioconvert ! opusenc inband-fec=true frame-size=2.5 bitrate=128000 ! rtpopuspay ! gdppay ! tcpserversink host=(internal ip address of sending computer) port=4000

RECEIVER
gst-launch-1.0 -v tcpclientsrc host=(external ip address of sender) port=4000 ! gdpdepay ! rtpjitterbuffer latency=400 ! rtpopusdepay ! opusdec plc=true use-inband-fec=true ! audioconvert ! audioresample ! jackaudiosink buffer-time=400000 sync=false


Results - not one drop out was heard for the time it took to play the whole file GSTREAMER TCP audio over ip - using FEC and PLC seemed to work very well for communicating morse code audio tones between 2 ops - over the internet -

NOTE: there was also involved, a VPN SERVER in another state...which also complicates the ip packet paths even more....and still not hearing any dropouts from these GSTREAMER PIPELINES is a remarkable statement for the quality of the GSTREAMER CODE

Comment

You need to be a member of QRQcw to add comments!

Join QRQcw

© 2024   Created by Chuck aa0hw.   Powered by

Badges  |  Report an Issue  |  Terms of Service