Date
1 - 7 of 7
Audio input decoding
Martin
Hello Rob,
that is great to hear! A few more details on my setup: I am using a QCX connected to a very cheap USB soundcard connected to a raspberry pi 3B. The loopback device is just software created with the following command: sudo modprobe snd_aloop The result of this is a virtual device and data is copied from one end (DEV=0) to the other (DEV=1) and also in reverse direction. So I would call this a virtual audio channel but I am not sure if this answered your question. I am no experienced programmer and found the topic of audio devices under linux very confusing. So I just tinkered around until I got it working finally. However, one end of this loopback device is the sink for the GNU radio script and the other is the source for wsprdaemon. I am happy to support by testing something or providing more details. Best regards, Martin |
|
Rob Robinett
Hi Martin, Your use of the AUDIO input feature has stimulated me to raise its priority in debugging of WD 3.0. Also, have you tried using a virtual audio channel as input to WD? Thanks, Rob On Fri, Oct 8, 2021 at 12:23 PM Martin <martin.classen@...> wrote:
--
|
|
Martin
Great, thank you for providing and maintaining wsprdaemon!
It is a very nice standalone solution. |
|
Rob Robinett
Hi Martin,
Thanks for that welcome report. In WD 3.0 I will study how to incorporate your fixes. Rob |
|
Martin
Hello,
baseband audio is working for me, however, two things needed tweaking beforehand:
1. the name of my soundcard is "plughw:CARD=Loopback,DEV=1" which does not fit into the naming scheme of wsprdaemon
2. the recorded audio was stereo per default but wsprd requires a mono recording
The sox option for mono recording (--channels 1) is specified in the function rtl_daemon but is missing in audio_recording_daemon.
I fixed this together with my souncard name directly in wsprdaemon.sh.
By the way - the background for my soundcard loopback device is the following:
My transceiver is a QCX (an excellent kit from QRP Labs) which has an audio center frequency of 700Hz. To get the 1500Hz required by wsprd, I am using a GNU Radio script to do the frequency shift of 800Hz and this script does the handover via the loopback device.
Best regards,
Martin |
|
Rob Robinett
Have you executed './wsprdaemon.sh -i' ?
t will help you find the audio port IDs and set the gain of your ports. |
|
Paulo CT <ct2iww@...>
Hello all,
I´ve been trying to run a single band wspr monitor with the audio input feature, but with no success. My present setup consists on a Funcube dongle, playong on the PC´s own soundcard. Since there´s no speakers plugged in, the default input the monitor for dummy audi output, that can be seen both by WSJTX and a QRSS grabbers. I´m using a modified default config file, with only AUDIO_0 enabled, which suposedly should be listening on localhost:0,0. So far, I havn´t been able to see any spots from this setup. i also tried with my main shack PC, with an external soundcard, with no results as well. OS is Ubuntu 20.04. Here´s my current .conf file: # To enable these options, remove the leading '#' and modify SIGNAL_LEVEL_UPLOAD_ID from "AI6VN" to your call sign: #SIGNAL_LEVEL_UPLOAD="proxy" ### If this variable is defined and not "no", AND SIGNAL_LEVEL_UPLOAD_ID is defined, then upload signal levels to the wsprdaemon cloud database ### SIGNAL_LEVEL_UPLOAD_MODE="no" => (Default) Upload spots directly to wsprnet.org ### SIGNAL_LEVEL_UPLOAD_MODE="noise" => Upload extended spots and noise data. Upload spots directly to wsprnet.org ### SIGNAL_LEVEL_UPLOAD_MODE="proxy" => In addition to "noise", don't upload to wsprnet.org from this server. Regenerate and upload spots to wsprnet.org on the wsprdaemon.org server #SIGNAL_LEVEL_UPLOAD="yes" ### If this variable is defined as "yes" AND SIGNAL_LEVEL_UPLOAD_ID is defined, then upload extended spots and noise levels to the logs.wsprdaemon.org database and graphics file server. #SIGNAL_LEVEL_UPLOAD_ID="AI6VN" ### The name put in upload log records, the the title bar of the graph, and the name used to view spots and noise at that server. #SIGNAL_LEVEL_UPLOAD_GRAPHS="yes" ### If this variable is defined as "yes" AND SIGNAL_LEVEL_UPLOAD_ID is defined, then FTP graphs of the last 24 hours to http://wsprdaemon.org/graphs/SIGNAL_LEVEL_UPLOAD_ID #SIGNAL_LEVEL_LOCAL_GRAPHS="yes" ### If this variable is defined as "yes" AND SIGNAL_LEVEL_UPLOAD_ID is defined, then make graphs visible at http://localhost/ ############################################################## ### The RECEIVER_LIST() array defines the physical (KIWI_xxx,AUDIO_xxx,SDR_xxx) and logical (MERG...) receive devices available on this server ### Each element of RECEIVER_LIST is a string with 5 space-seperated fields: ### " ID(no spaces) IP:PORT or RTL:n MyCall MyGrid KiwPassword Optional SIGNAL_LEVEL_ADJUSTMENTS ### [[DEFAULT:ADJUST,]BAND_0:ADJUST[,BAND_N:ADJUST_N]...] ### A comma-separated list of BAND:ADJUST pairs ### BAND is one of 2200..10, while ADJUST is in dBs TO BE ADDED to the raw data ### So If you have a +10 dB LNA, ADJUST '-10' will LOWER the reported level so that your reports reflect the level at the input of the LNA ### DEFAULT defaults to zero and is applied to all bands not specified with a BAND:ADJUST declare RECEIVER_LIST=( # "KIWI_0 10.11.12.100:8073 AI6VN CM88mc NULL" # "KIWI_1 10.11.12.101:8073 AI6VN CM88mc foobar DEFAULT:-10,80:-12,30:-8,20:2,15:6" # "KIWI_2 10.11.12.102:8073 AI6VN CM88mc foobar" "AUDIO_0 localhost:0,0 CT2IWW IN51wf foobar" ### The id AUDIO_xxx is special and defines a local audio input device as the source of WSPR baseband 1400-1600 Hz signals # "AUDIO_1 localhost:1,0 AI6VN CM88mc foobar" # "SDR_0 RTL-SDR:0 AI6VN CM88mc foobar" ### The id SDR_xxx is special and defines a local RTL-SDR or other Soapy-suported device # "SDR_1 RTL-SDR:1 AI6VN CM88mc foobar" # "MERG_0 KIWI_1,KIWI2,AUDIO_1,SDR_1 AI6VN CM88mc foobar" ) ### This table defines a schedule of configurations which will be applied by '-j a,all' and thus by the watchdog daemon when it runs '-j a,all' ev ery odd two minutes ### The first field of each entry in the start time for the configuration defined in the following fields ### Start time is in the format HH:MM (e.g 13:15) and by default is in the time zone of the host server unless ',UDT' is appended, e.g '01:30,UDT' ### Following the time are one or more fields of the format 'RECEIVER,BAND' ### If the time of the first entry is not 00:00, then the latest (not necessarily the last) entry will be applied at time 00:00 ### So the form of each line is "START_HH:MM[,UDT] RECEIVER,BAND... ". Here are some examples: declare WSPR_SCHEDULE_simple=( "00:00 AUDIO_0,10 " ) #declare WSPR_SCHEDULE_merged=( # "00:00 MERG_0,630 MERG_0,160" #) #declare WSPR_SCHEDULE_complex=( # "sunrise-01:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 " # "sunrise+01:00 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10" # "09:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 " # "10:00 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10" # "11:00 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10" # "18:00 KIWI_0,2200 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 " # "sunset-01:00 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10" # "sunset+01:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10" #) ### This array WSPR_SCHEDULE defines the running configuration. Here we make the simple configuration defined above the active one: declare WSPR_SCHEDULE=( "${WSPR_SCHEDULE_simple[@]}" ) Any thoughts? thanks Paulo, CT2IWW |
|