feat(audio): transmit audio for WSJT-X through a network Icom

An IC-705, IC-7610 or IC-7760 on Ethernet has no sound card on this PC:
its receive audio arrives on UDP 50003 and its transmit audio has to go
back the same way. OpsLog already did both — the monitor plays the
stream, the voice keyer and the talk button send into it.

WSJT-X could not. It drives the rig through the CAT OpsLog shares, so it
tunes and keys perfectly well, and then has nowhere to put its audio: it
needs a Windows endpoint and the radio is not one. A virtual cable
bridges that, which is what wfview asks of its users too — nothing short
of a signed kernel driver can present a sound card.

So: a "WSJT-X transmit audio" device in Settings ▸ Audio, shown only
when To Radio is the radio itself, since a rig with a USB codec needs
none of this and WSJT-X talks to that codec directly.

Almost no new machinery. StartTXAudioNetwork already pipes a chosen
capture device into the rig — it was written for the talk button — and
the missing piece was only WHEN. That is catShareRig.SetPTT: WSJT-X keys
through us, so we know. Audio starts after the carrier and stops before
it, because the other order transmits what is still buffered after the
program thinks the over is finished.

Armed by PTT rather than left running: a permanent stream would put
whatever the cable carries — desktop notifications, another program that
grabbed the same cable — on the air the moment anything else keyed the
rig. And stopped only if WE started it, since the talk button and the
voice keyer share the same route and a digital over ending must not cut
off a message being played by hand.

Receive needs no code: point Listening at a second cable and WSJT-X's
input at its other side. The hint in Settings says so.
This commit is contained in:
2026-09-11 09:09:35 +02:00
parent 97cc446c15
commit 60990276f5
8 changed files with 197 additions and 16 deletions
+4 -2
View File
@@ -2,10 +2,12 @@
{
"version": "0.27.25",
"en": [
"The relaunch after an update goes back to the helper that waited for OpsLog to close before starting the new version. Two rewrites tried to do without it and both left some operators with no window. Windows Defender may flag it — allow OpsLog in Defender if it does."
"The relaunch after an update goes back to the helper that waited for OpsLog to close before starting the new version. Two rewrites tried to do without it and both left some operators with no window. Windows Defender may flag it — allow OpsLog in Defender if it does.",
"WSJT-X can now transmit through an Icom reached over Ethernet. Set its output to a virtual audio cable and choose that cable under Settings ▸ Audio — OpsLog streams it to the radio while WSJT-X holds PTT through the shared CAT."
],
"fr": [
"La relance après une mise à jour revient à lassistant qui attendait la fermeture dOpsLog avant de démarrer la nouvelle version. Deux réécritures ont essayé de sen passer et laissaient certains opérateurs sans fenêtre. Windows Defender peut le signaler — dans ce cas, autorisez OpsLog dans Defender."
"La relance après une mise à jour revient à lassistant qui attendait la fermeture dOpsLog avant de démarrer la nouvelle version. Deux réécritures ont essayé de sen passer et laissaient certains opérateurs sans fenêtre. Windows Defender peut le signaler — dans ce cas, autorisez OpsLog dans Defender.",
"WSJT-X peut désormais émettre à travers un Icom joint en Ethernet. Réglez sa sortie sur un câble audio virtuel et choisissez ce câble dans Réglages ▸ Audio — OpsLog le diffuse vers la radio pendant que WSJT-X tient le PTT via le CAT partagé."
]
},
{