Windows KiwiClient & Co
I feel a bit "unclean" here, asking about Windows. Sorry...
It seems as if some have managed to run the client (or recorder, anyway) on a Windows machine, so I've downloaded Python 126.96.36.199 thinking I'd give it a try. Previous experience is almost nil.
Now, looking in jks-prv/kiwiclient, there isn't much to get me started and I wondered if there was a step-by-step anywhere out there. Google doesn't tell me much, Alexa is a bit high-class on a fixed pension. Is there any free advice here, please?
It didn't help my confidence to come across a reference to pulseaudio, which I thought was Linux-only.
The aim is to mess around, trying to record simultaneously 2 x RX on different frequencies (parallel channel AM broadcast) from a remote public Kiwi.
You may be able to get the result you are looking for by actually recording from two concurrent browser windows.
Would that help you in what you are trying to achieve?
I've personally got not enough experience with python under Windows to be able to directly assist you I'm afraid.
"recording from two concurrent browser windows"
Yes, I have that (using VAC) a lot of thought. Unless I'm missing something, would VAC distinguish between two instances of Edge, or whatever? Wouldn't I need to use, say Edge + Chrome?
And then I'd need VAC "gather" into a 3rd stream to make a 2-channel single recording, using e.g. Audacity.
Then the browser app, for all its virtues, needs to be carefully manipulated/protected compared with command line entry.
It all seemed a bit messy, whereas KiwiRecorder (or similar).
And maybe I'm secretly wanting the motivation to learn something new :D.
Sorry for careless composition there.
I am assuming that you have Python installed correctly and already unzipped the kiwiclient package.Depending on how far you got with trying to run kiwirecorder and using Python on your windows machine you can try the following steps.
1. With explorer go to the directory where you unzipped the kiwiclient repository into.
2. Check Python is properly installed by opening CMD and typing python or perhaps python3 in your installation. To exit python type in exit()
3. For the remote kiwi(s) you want to use, have the ip adresses and port numbers ready.
4. As example here Shannon Volmet parallel transmission is used on 5505 and 8957 and a kiwi receiver in Finland. Provided the remote Kiwi has 2 slots available it will record both transmissions which then show up in your above mentioned kiwiclient directory. In the CMD window type:
python kiwirecorder.py -k 30 -s kiwisdr.oh6ai.fi,kiwisdr.oh6ai.fi -p 8073,8073 -f 5505,8957 -m usb -L 200 -H 2700
Stop the recording after a minute with the CTRL + C keys combination.
5. Once you got this working, have a look at kiwirecorder.py --help to see what else you want to add, like limiting the recording time, add squelch parameters, append a station name or adding a directory where you want to save those wav files.
Best regards, Ben
Ben, you're a star. I hope to try this out in the next day.
Oh, many thanks! Such clear instructions are like an invitation to me to test it, too. 🙂
Don't forget "Windows Subsytem for Linux" under Windows 10. (https://docs.microsoft.com/en-us/windows/wsl/install-manual)
Install (for example) Unbuntu 20.04
Once installed start the Ubuntu 20.04 app and -
sudo apt install git python3-numpy
git clone https://github.com/jks-prv/kiwiclient.git
#Run Ben's command edited to suit
Grab the files in Windows
Thanks Ben, I needed a reason to try WSL.
Once you have WSL running it would be interesting to see if you can get kiwiclientd working.
I have tried this directly with Python running under windows and also using a Linux Virtual Machine. Managed to send audio to a soundcard, but have no luck with changing frequency or mode from FLdigi or WSJTX. It looks like an UDP connection problem under windows. Might be smooth sailing running this on WSL..
ref ( http://forum.kiwisdr.com/index.php?/discussion/comment/11095#Comment_11095 )
I might have a go if I enable WSL on a physical laptop as my Win10 box is a VM without access to microphone, camera, wireless, bluetooth, or sound card (not having those was part of the reason for running as a VM).
I see it is possible to port audio from WSL to Windows using PulseAudio but then it seems a bit of a lash up.
On the UDP control of a VM did you try different network setups (avoiding NAT, or adding another virtual only NIC) and what type of VM? VirtualBox Vmware etc.
Hey, Ben... took me a couple of days (being a complete Python dummy), but now... ace!
Thanks to your steer, I'm using WinPython plus command prompt (though I've also tried Spyder and VS Code extension as IDEs).
With Bjarne's Kongsfjord Kiwi, made simultaneous recordings of Taiwan's parallel outlets 738 & 1143 kHz for 18.5 minutes (evidence for a Skywaves DX Forum posting).
Then used Audacity to normalise levels and mix to a single stereo track. Great way to listen to parallel channels. Example here: https://1drv.ms/u/s!Aowxw4jVL-1TdtFPiJSHgzcS9rc.
So how would John S. like spend his holiday creating an option for 2 RX channels to create one stereo file directly? Would save a lot of time :D.
For info, the options usage list seems a bit out-of-date? Attached is a first cut update.
Glad to see that worked out well for you and thanks for posting this handy list with Kiwirecorder options.
Creating those stereo tracks one thing to keep in mind is that even on the same Kiwi with a common antenna input the individual channels are not time synchronised. You could check this by tuning a time signal station or using a pulsed test signal.
If that becomes important for your use, you could check out what Christoph created as a GNUradio block to combine 4 KiwiSDR IQ synched streams by using GNSS timestamps. Installing GNUradio with all the needed modules on a windows machine turns out to be difficult and I ended up using Linux for that.
ref ( https://hcab14.blogspot.com/2019/01/kiwisdr-iq-data-streams-with-2025-khz.html )
@Powernumpty, I used Oracle VM Virtualbox and so far have not checked other than UDP network set-ups.
I did wonder how closely the independent channels would be synchronised. I'm sure this would be useless for TDOA etc, but my ear could not detect any misalignment (which would probably be masked by propagation effects anyway).
All I really care about here is verifying parallelism for ident purposes.
That said, I'd like to know more about GNSS timestamps. When i've recovered :D.
Christoph's combiner does 3 channels and I tested for him earlier on. It get things aligned perfectly.
"Christoph's combiner does 3 channels"
Thanks for that.
Didn't want to hog any public Kiwi, hence my limitation to try just 2 channels. Glad to know it can be pushed further.
I've been in a conversation with SDRC's Simon Brown about provision for multi-channel. While multi-channel recordings can be useful as packaged "evidence" for parallel channel reception, there are issues for playback and compression as well as getting a neat way to switch/compare channels.
But this may be a live topic, so further debate/ideas very welcome.
you may want to get gnuradio and kiwiclient working
WSL for Windows is a good path if you don't have a Linux box
Yes, after this minor success with Kiwi Recorder, I'm looking forward to exploring Kiwi Client in more depth. That was non-trivial, given my lack of any Python experience (VBA/VB.NET are my only language skills).
After spending a good part of a year trying to develop a tool with Gnu Radio Companion (and checking out Pothos in the process), I'm completely fed up with GRC's hopeless immaturity. IMO the volunteer team is more interested in doing "cool stuff" than making basic GUI blocks work properly. And the switch to QT-GUI was a disaster because so much useful WX block functionality went down the plug-hole.
But GRC may still have its uses and I intend to revisit later.
If I have to use a Pi or Kiwi for SDR then Linux is pretty much my only option, so I'll continue fumbling about (grudgingly) to make it work.
What I don't need is yet another layer of complexity with WSL (hell, I'm still holding Win 10 at bay). There are plenty of perfectly good Python interpreters and IDEs for Windows, thanks.
Paul, another way of doing this without using Python at all, is to open 2 browser sessions at the same Kiwi and set the Pan sliders located on the Audio tabs to full left and full right. You then have a stereo signal right away and if you wish you could make audio recordings as well.
PS: A quick look measurement of the delay between two channels of the same Kiwi node shows about 115 ms. This is just from a single attempt. Using recordings coming from an internet browser you can expect considerable more delay depending browser and network vagueries.
Would be great if at least for Kiwirecorder there was a possibility to sync those streams.
Python itself really isn't the issue.
I have tried recording browser sessions and that's terribly messy, really doesn't cut the mustard, so I'm more than happy to use KiwiClient with its vastly better potential.
My experience so far suggests 2 x KiwiClient streams are more than well enough synchronised (no measurements, though). Maybe you have a more demanding application?
Happy New Year!
@jks Hi, John
I've just started to look into the innards of kiwiclient, to understand a little bit about its function but also to motivate first steps in getting familiar with Python (oh, why did I ever imagine I'm up to that?).
A few basic questions have come up. Would you be willing and able to spare a little time helping me out? Maybe off-board?