QSO QRQ CW with a friend(s) using Gstreamer - send along a PICTURE of yourself with your QRQcw audio

     in HONOR of the late GREAT SK -   WILD BILL -   KB9XE   

demo of this - honoring the late great QRQcw OP

"WILD BILL", KB9XE

here are the Gstreamer scripts used for this example:

SEND a jpeg picture to the "other" QRQ CW OP
*********************************************************************
gst-launch-1.0 -v filesrc location=/home/qrq/kb9xe.jpeg ! decodebin ! videoconvert ! imagefreeze ! jpegenc ! udpsink host=(ip address of the other QRQ CW OP) port=5007

SEND your QRQ CW AUDIO to the "other" QRQ CW OP
*********************************************************************
gst-launch-1.0 jackaudiosrc ! audio/x-raw,channels=1 ! audiorate ! audioconvert ! opusenc bitrate=256000 frame-size=2.5 ! rtpopuspay ! udpsink host=(ip address of the other QRQ CW OP) port=5008

RECEIVE jpeg picture from the "other" QRQ CW OP
*******************************************************************
gst-launch-1.0 -v udpsrc port=5007 ! decodebin ! videoconvert ! ximagesink

RECEIVE QRQ CW AUDIO from the "other" QRQ CW OP
***************************************************************
gst-launch-1.0 -v udpsrc caps="application/x-rtp,channels=1" port=5008 ! rtpjitterbuffer latency=60 ! queue ! rtpopusdepay ! opusdec plc=true ! audioconvert ! jackaudiosink buffer-time=30000

gstreamer:
https://gstreamer.freedesktop.org/

OBITUARY:

http://www.legacy.com/obituaries/neptune-society/obituary.aspx?n=Wi...

Views: 520

Comment by Chuck aa0hw on November 13, 2018 at 12:01pm

Here is a follow up video demo - where Bill, Tom & Lyle are all QSO'n together in this unique way to have yourself a fine CW QSO with your CW buddies using Gstreamer

Experimental setup to have an online CW QSO with your friends, in full QSK, FULL DUPLEX, high quality CW audio fidelity using Gstreamer scripts AND send everyone a PICTURE of yourself too


here are the Gstreamer scripts blueprint used for this example:

SEND a jpeg picture to the "other" QRQ CW OP
*********************************************************************
gst-launch-1.0 -v filesrc location=/home/qrq/kb9xe.jpeg ! decodebin ! videoconvert ! imagefreeze ! jpegenc ! udpsink host=(ip address of the other QRQ CW OP) port=5007

SEND your QRQ CW AUDIO to the "other" QRQ CW OP
*********************************************************************
gst-launch-1.0 jackaudiosrc ! audio/x-raw,channels=1 ! audiorate ! audioconvert ! opusenc bitrate=256000 frame-size=2.5 ! rtpopuspay ! udpsink host=(ip address of the other QRQ CW OP) port=5008

RECEIVE jpeg picture from the "other" QRQ CW OP
*******************************************************************
gst-launch-1.0 -v udpsrc port=5007 ! decodebin ! videoconvert ! ximagesink

RECEIVE QRQ CW AUDIO from the "other" QRQ CW OP
***************************************************************
gst-launch-1.0 -v udpsrc caps="application/x-rtp,channels=1" port=5008 ! rtpjitterbuffer latency=60 ! queue ! rtpopusdepay ! opusdec plc=true ! audioconvert ! jackaudiosink buffer-time=30000

gstreamer:
https://gstreamer.freedesktop.org/

Comment by Chuck aa0hw on November 13, 2018 at 3:15pm

Here is another video in this series about QRQ over GSTREAMER:  this video demo'S a method for getting good "break - in" on the sending op - using a ducking control from a plugin called  "LOUDMAX"

- Brief demo of a QRQ CW "audio over ip" QSO using Gstreamer -

how to break in on the "sending" OP effectively
using a "Ducking control setup" by a PLUGIN called "LOUDMAX" https://loudmax.blogspot.com/

QRQ OVER GSTREAMER - PIPELINES:

here is the blueprint for these scripts:

TRANSMITTER:
gst-launch-1.0 jackaudiosrc ! audio/x-raw,channels=1 ! audiorate ! audioconvert ! opusenc bitrate=128000 frame-size=10 ! rtpopuspay ! queue ! udpsink host=(ip addres of the other op) port=5001

RECEIVER:
gst-launch-1.0 -v udpsrc caps="application/x-rtp,channels=1" port=5001 ! rtpjitterbuffer latency=30 ! queue ! rtpopusdepay ! opusdec ! audioconvert ! jackaudiosink buffer-time=40000

Comment by Chuck aa0hw on November 15, 2018 at 10:48am

 Here is another VIDEO demo'N using GSTREAMER for REMOTE RIG QRQ CW operations on HF

brief demo of a REMOTE RIG OPERATIONS setup to conduct a remote RIG TRANSMIT//RECEIVE session - operating the rig remotely in another room of the house(or from anywhere over the internet) using GSTREAMER SCRIPTS...and a RASPBERRY PI::RIG INTERFACE

RASPBERRY PI GSTREAMER SCRIPTS
using a USB Soundcard(alsa)
*********************************************************************
RECEIVE AUDIO FROM THE RIG to the REMOTE OP:
gst-launch-1.0 -v alsasrc ! audio/x-raw, endianness=1234, signed=true, width=16, depth=16, rate=48000, channels=1, format=S16LE, layout=interleaved ! audioconvert ! audioresample ! queue ! udpsink host=(IP address of the REMOTE OP) port=5001
AUDIO FROM THE REMOTE OP to the RIG for TRANSMIT:
gst-launch-1.0 -v udpsrc port=5002 ! audio/x-raw, endianness=1234, signed=true, width=32, depth=32, rate=48000, channels=2, format=F32LE, layout=interleaved ! audioconvert ! audioresample ! alsasink buffer-time=60000


REMOTE OP's LAPTOP GSTREAMER SCRIPTS
*****************************************************************
SEND AUDIO for RIG TRANSMIT to the PI::RIG INTERFACE
gst-launch-1.0 -v jackaudiosrc ! audio/x-raw, endianness=1234, signed=true, width=32, depth=32, rate=48000, channels=2, format=F32LE, layout=interleaved ! audioconvert ! audioresample ! queue ! udpsink host=(IP address of the PI) port=5002

RECEIVE AUDIO from the RIG
gst-launch-1.0 -v udpsrc port=5001 ! audio/x-raw, endianness=1234, signed=true, width=16, depth=16, rate=48000, channels=1, format=S16LE, layout=interleaved ! queue ! audioconvert ! audioresample ! queue ! jackaudiosink buffer-time=60000


ZAMGATE LV2 PLUG - sets the amount of FULL BREAK IN QSK HF RECEIVE AUDIO desired...
https://github.com/zamaudio/zam-plugins/tree/master/plugins

TONE to key AUDIO DERIVED PTT KEYING CIRCUIT
http://qrqcwnet.ning.com/forum/topics/what-circuit-for-computer
https://github.com/moddevices/mod-lv2-data/tree/master/plugins/mod-...

AD5DZ CW KEYBOARD
https://youtu.be/l8wKVnA4oGc
https://github.com/recri/keyer

SIMPLE DELAY LINE
https://github.com/swh/lv2/tree/master/plugins
note: this is crucial to find the best delay timing...so that the PTT has enough time to ACTIVATE FULLY before the CW AUDIO TONE arrives to the RIG for TRANSMIT...this also gives you the MOST HF RECEIVE audio between elements, letters, or words... if you can find the "just enough" delay value...to allow the most HF RX audio to your preference

GSTREAMER
https://gstreamer.freedesktop.org/

NOTE: Gstreamer runs very light on the ol RASPBERRY PI 2b used in this demo...and allows the use of ALSA AUDIO ENGINE on the PI's sound card...making things a bit easier to get running...VERSES trying to setup up JACKAUDIO or PULSEAUDIO on the PI

Comment by Chuck aa0hw on November 15, 2018 at 11:30am

another LIVE video demo of setup for QSO'n CW audio with a friend over the internet using Gtreamer PIPELINES

brief demo of the RECEIVE OP's DESKTOP(LEFT SIDE OF SCREEN)
(Spider-Man represents the USB Webcam view of the SENDING OP)

- RIGHT SIDE of the SCREEN is the SENDING OP's DEKSTOP APPs
the sending OP is sending their USB WEBCAM VIEW to the RECEIVING OP''s ip address...as well as sending CW AUDIO(AD5DZ CW Keyboard) and TEXT MESSAGEs(FLdigi)

CW OP 2(RT SIDE) is sending qrq cw TO CW OP 1(LEFT SIDE) - using the AD5DZ CW KEYBOARD
and
CW OP 2 is sending TEXT MESSAGES to CW OP 1 in REAL TIME using FLDIGI's BPSK500 DIGITAL MODE

a 2 channel GSTREAMER opus audio over ip PIPELINE is used to go from CW OP 1 to CW OP 2....the LEFT CHANNEL is for CW AUDIO(mic too if you would like to add voice to the mix) ...the RIGHT CHANNEL is for FLdigi to send the BPSK500 AUDIO for text messaging

here are the Gstreamer commands used:

GSTREAMER CW TRANSMITTER PIPELINE OP2:
gst-launch-1.0 jackaudiosrc ! audio/x-raw,channels=2 ! audiorate ! audioconvert ! opusenc bitrate=256000 frame-size=20 ! rtpopuspay ! udpsink host=(ip address of CW OP 1) port=12345

GSTREAMER RECEIVER OP1:
gst-launch-1.0 -v udpsrc caps="application/x-rtp,channels=2" port=12345 ! rtpjitterbuffer latency=50 ! queue ! rtpopusdepay ! opusdec ! audioconvert ! queue ! jackaudiosink buffer-time=60000

Comment by Chuck aa0hw on November 15, 2018 at 5:18pm

Here is another video demo - of a QRQ Gstreamer CW OP using WINDOWS 10 for sending and receiving CW "AUDIO OVER IP" with a LINUX QRQ Gstreamer CW OP who is using Lubuntu 18.04 

Brief setup LIVE demo of a QRQ Gstreamer CW QSO between a CWop using WINDOWS 10 and another CWop using LINUX - Lubuntu 18.04

GSTREAMER SCRIPTS USED in this example
***************************************************************
LINUX OP sending cw to the WINDOWS 10
gst-launch-1.0 jackaudiosrc ! audio/x-raw,channels=1 ! audiorate ! audioconvert ! opusenc bitrate=128000 frame-size=20 ! rtpopuspay ! udpsink host=(ip address of win 10 OP) port=4444

WINDOWS 10 OP sending cw to the LINUX OP
gst-launch-1.0 directsoundsrc ! audio/x-raw,channels=2 ! audiorate ! audioconvert ! opusenc bitrate=128000 frame-size=20 ! rtpopuspay ! udpsink host=(ip address of the Linux OP) port=55555

LINUX OP RECEIVING cw from the WINDOWS 10 OP
gst-launch-1.0 -v udpsrc caps="application/x-rtp,channels=2" port=55555 ! rtpjitterbuffer ! queue ! rtpopusdepay ! opusdec plc=true use-inband-fec=true ! audioconvert ! jackaudiosink

WINDOWS 10 OP RECEIVING cw from the LINUX OP
gst-launch-1.0 -v udpsrc caps="application/x-rtp,channels=1" port=4444 ! rtpjitterbuffer latency=60 ! queue ! rtpopusdepay ! opusdec ! audioconvert ! directsoundsink

for more info on QRQ CW see:
http://qrqcwnet.ning.com/


NOTE: on the windows OS, you have to jump through a few hoops...at least in this setup....i was using 2 AUDIO REPEATERS to take the audio from BREAKAWAY PIPELINE 1 and BREAKAWAY PIPELINE 2 to route it to the WINDOWS LAPTOP's REALTEK HD SOUND CARD...so the audio can be heard on the win 10 laptop speakers//headphones etc...

the GSTREAMER SCRIPTS used above for windows...are using the "DEFAULT" sound cards for PLAYBACK and RECORD... and to keep the input from going back out the output...and creating a LOOPBACK ...you have to use different soundcards for RECEIVE and TRANSMIT...
in this example BREAKAWAY PIPELINES are being utilized for the task
https://sites.google.com/site/icwoip/best-virtual-sound-card-for-icw

for the AUDIO REPEATERS, there are a few programs you can use on windows...the idea is to tell FLdigi to use BREAKAWAY PIPELINE 2 to act as the transmitting capture device to go out over GSTREAMER, however, you would not be able to hear FLdigi's sidetone unless you use an audio repeater to take the audio going through BREAKAWAY PIPELINE 2 and send it to the WIN 10 soundcard too, so it can be monitored...etc...same for BREAKAWAY PIPELINE 1...which is acting as the audio device for the RECEIVE GASTREAMER Pipeline from the Linux OP sending to the WIN 10 op

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