So much for listening to the stream. Now you want to do other things, like building a spectrogram, detecting weak signals, and decoding coherent BPSK messages. For that you'll want to retrieve signal from the Pi and run it through Spectrum Lab on your Windows PC, or vlfrx-tools commands on your Linux workstation.
For this, we will set up a different kind of audio server, one that is much more general purpose. It can supply compressed or un-compressed signal with all five channels and with timestamps, to a client PC on your network. It is quite easy to set up.
The first step is to install a general purpose internet server daemon, xinetd, with:
apt-get install -y xinetd
When that's done you should have an xinetd process running, check with
ps ax | grep xinetd
That ps and grep combination is another command you should be getting familiar with by now!
Use your editor to create a file /etc/xinetd.d/vlf containing the following:
service vlf-a { type = UNLISTED id = vlf-a port = 42001 socket_type = stream protocol = tcp user = root wait = no disable = no server = /usr/local/bin/vtvorbis server_args = -ei -q0.4 @filtered }
This tells xinetd that if it receives an incoming client connection on TCP port 42001, it should run the vtvorbis command with options -ei -q0.4 @filtered and send the output of that command to the client. It's so simple and general purpose! You can use what you like for the service name and id and you can have as many services as you want (each in its own configuration file under /etc/xinetd.d). Invent a different port number for each service. Try not to use a port number that is used by regular services or bad things will happen. Stick to ports above 10000 or so and you shouldn't have any problem.
Save the new configuration file and tell xinetd that it needs to reload its configuration with the command
killall -HUP xinetd
That's it, job done.
If you're running a Linux workstation, on there do
vtvorbis -dvn 192.168.2.37,42001 @vlf-a
This command connects to the Pi and receive the output of the vtvorbis command invoked by that service on port 42001. The signal goes into a buffer @vlf-a on your workstation:
vtstat @vlf-a
and from there you can do whatever you want to with it.
On Windowss, you will configure Spectrum Lab to retrieve signal from the URL
rawtcp://192.168.2.37:42001
The example vlf-a service supplies a vorbis compressed stream with timestamps to the network clients. You will usually want an un-compressed stream, certainly if you're looking for weak signals buried under the noise. For this, create a service that uses vtcat to send the buffer @filtered. For example, create an xinetd configuration file /etc/xinetd.d/vlf-b with contents
service vlf-b { type = UNLISTED id = vlf-b port = 42002 socket_type = stream protocol = tcp user = root wait = no disable = no server = /usr/local/bin/vtcat server_args = @filtered -- -,f4 }
Save and signal xinetd to reload its configuration with
killall -HUP xinetd
Now, when a client connects to port 42002 on the Pi, the command that is run is
vtcat @filtered -- -,f4
which reads the signal in the buffer @filtered, and sends it to standard output using format f4 which stands for IEEE 32 bit floating point samples. xinetd forwards that output to the client. The syntax -- -,f4 may look a bit cryptic at first but it's quite simple. -.f4 means standard output in f4 format. The -- tells vtfilter that there are no more command line options to follow. Without that, when it sees the - in -,f4 it would try to parse ,f4 as a command line option.
From a Linux workstation you would retrieve this signal with the command
nc 192.168.2.37 42002 | vtcat -- - @vlf-b
The program nc makes the connection to port 42002 on your Pi. It receives the uncompressed stream and pipes it to vtcat which puts the signal into a buffer @vlf-b. The -- is used again here, and the lone - indicates standard input.
With the current version of Spectrum Lab, there isn't a way to retrieve un-compressed signal. This may change in the near future.