Never call a string of Morse tones "words"

A repeater identifying itself in CW over an FM carrier came back from the
recogniser as "2-2-2-3-3-5-2-7-0-5-9-7-0-8-1-0" -- one digit per tone,
sixteen characters of nothing, which cleared the five-character bar and
cost the capture its waterfall.

The rule now lives in one place, waterfall.is_readable, shared by the
scanner and the waterfall command: voice, no Morse, and more than a
handful of characters.

  bandsaunter waterfall --check-morse

runs the CW decoder over the recordings a sidecar calls readable, for
sidecars written before the decoder could hear an ident over an FM
carrier, and draws -- and records the ident in -- the ones that have one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PsWPTweCT6pwxKngvVxcg
This commit is contained in:
The Dust Council 2026-09-03 21:43:51 -07:00
parent dee262e130
commit a8a8548369
9 changed files with 190 additions and 29 deletions

View file

@ -891,12 +891,26 @@ readable words gets one drawn beside it** as a PNG — no voice, or voice that
came back from the recogniser with fewer than five characters, which is what
a recogniser handed something that is not speech reliably does.
A capture with Morse in it never counts as readable, however much the
recogniser made of it. A station identifying itself in CW over an FM
carrier comes back as a string of digits, one per tone — sixteen characters
of nothing, sailing past any bar you set. The ident is in the Morse text;
the signal itself is only visible as a picture.
```bash
bandsaunter waterfall # draw a directory already recorded
bandsaunter waterfall --all # including the ones that read fine
bandsaunter waterfall --check-morse # listen again before believing them
bandsaunter waterfall --redraw recordings/
```
`--check-morse` is for recordings made before the CW decoder could hear an
ident over an FM carrier: their sidecars call a repeater readable, because
the recogniser turned its tones into digits. It runs the decoder over the
recordings that would otherwise be skipped, draws the ones that turn out to
have an ident in them, and writes the ident into the sidecar so the browser
shows it and the next run needs no second listen.
Time runs down the picture and frequency across it, which is the way a
receiver draws one. The frequency scale is on top, the seconds down the
left, and the caption underneath says what the capture was.