CSVF2 - radio text/file modem      (version 1.2, 2026-09-20)
==========================================================

CSVF = client server via frequency.

Sends text or a file over a voice radio as audio tones, and receives it again.
Your callsign is spoken (NATO phonetics + numbers) at the start, at the end and often enough on
long transmissions to stay inside the 10 minute rule. audio/website.wav plays right after the
tones and before the closing callsign.

Long transmissions are sent in bursts of 2 minutes with a silent gap between them, so a radio
with a time-out timer (e.g. TYT MD-390, 180 s) un-keys and resets. Each burst starts with a
steady 400 Hz keying tone for VOX radios. Both are settings on the Transmit tab.

Quick start
  1. Install Python 3.10 or newer.
  2. pip install -r requirements.txt
  3. python radio_gui.py

Transmit tab : pick Text or File, type your callsign, choose a Speed, Transmit.
Receive tab  : choose the radio's audio input, Start listening. Messages appear
               in the log; when a file finishes you get a save prompt.

Files
  radio_gui.py     the window
  radio_modem.py   the modem (encoder + decoder, no GUI, protocol described at the top)
  audio/           a-z (phonetic words) and 0-9 clips for the spoken callsign, and
                   website.wav (replace it with your own announcement, or delete it
                   to skip it). Keep this folder next to the .py files.

Full documentation: the CSVF2 page on the KE9GDP site.
You are responsible for operating within your licence and local rules.
