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=William-Pletting&lc=1964&pid=185617185&mid=7405710

Load Previous Comments
  • Chuck aa0hw

     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

  • Chuck aa0hw

    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

  • Chuck aa0hw

    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