bandsaunter/bandsaunter
The Dust Council f9b21f7e35 Give the aerodromes a colour of their own, and say what each aircraft is
Four things about the animated pictures, and the window kept in step with
them.

The aerodromes were amber, and so is an aeroplane at twelve thousand feet.
Sixteen units of CIELAB apart is not two colours, it is one: an aircraft low
over a field was drawn in the field's own colour and neither could be picked
out from the other.  They are magenta now, fifty-six units from the nearest
altitude colour, which is what the ramp leaves free once red, amber, green,
cyan and violet have gone on height -- and what an aeronautical chart marks
an aerodrome in anyway.  The test states that as the distance rather than as
the colour, so that changing the ramp cannot quietly walk an aircraft back
into the airports.

The height beside an aircraft was the flight level, which is shorter and is
what an aviator reads, but "376" is only a height to somebody who already
knows it is one.  It is feet with the unit on it now, rounded to the
twenty-five feet Mode S reports altitude in: a real reading is a multiple of
that and comes through untouched, while a moment interpolated between two
reports stops claiming to know the height to the foot.

The flag of the country of registration now comes off the address block
where no register answered.  Taking it from the register's answer alone left
the flag off exactly the aircraft that had nothing else beside them either.
Mexico was missing from the address table while we were in there, which a
receiver in the American southwest notices; two registers independently give
XA- registrations for that block.

And what sort of aircraft it is, which is two facts and not one.  What it is
comes off the air: every identification message carries three bits under its
type code saying whether it is light, large, heavy, a rotorcraft, a glider,
a drone or a van on the apron, and that is the only word about what an
aircraft *is* that needs no register.  They were being decoded and thrown
away.  They are inside the identification frame the log already writes down
in full, so every log this program has ever written has them, including the
ones written before anything here knew to look.

Whether it is military comes off no air at all -- a tanker calls itself
heavy exactly as an airliner does -- and is read from the address block
instead.  On one evening here AE07D3 broadcast "heavy" and sat in the United
States military block; the register, asked separately, came back with a
C-17A Globemaster III, tail 90-0534, United States Air Force.

Labels in an animation now behave as the boxes in the window do.  One keeps
its place for as long as that place still works and is moved only when
something takes it, which on a real log is about half as many moves as
deciding afresh every frame; the moves that are left are eased over half a
second of playback; and what the next label is laid out against is where a
moving one is going rather than where it has reached.  A still has no frame
before it and places its labels exactly as it always did.

The fading was only half done.  A label's name faded, because it is drawn in
the aircraft's own colour, but its rows and its flag were fixed colours and
stayed at full brightness -- so the brightest thing on that part of the
picture was the one aeroplane nothing had been heard from.  An indexed
picture cannot blend, so the row grey and all twelve flag colours now have
dimmed copies at each of the four fade steps, and the whole box goes
together.  A crowded frame, which drops back to the short label, drops the
class and the flag with it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016PsWPTweCT6pwxKngvVxcg
2026-09-04 22:45:41 -07:00
..
__init__.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
__main__.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
_quiet.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
adsb.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
aircraft.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
announce.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
apt.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
bandplan.py Name the band beside every frequency, and map who was heard 2026-08-28 11:02:56 -07:00
basemap.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
browse.py Say what the terms are, and how to install under them 2026-09-03 22:58:18 -07:00
callsign.py Hear the short replies, and read the other kind of callsign 2026-09-02 00:30:02 -07:00
classify.py Read the stations that never say a word 2026-08-29 14:59:25 -07:00
cli.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
config.py Draw the waterfall for everything that never spoke 2026-09-03 18:36:00 -07:00
decode.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
demod.py Tune SSB to the carrier, and read the sideband from the signal 2026-08-21 23:09:44 -07:00
device.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
dsp.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
fax.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
flags.py A sharper map, and aircraft that fade rather than blink out 2026-09-04 19:04:09 -07:00
flightlog.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
flightmap.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
flights.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
images.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
ism.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
kml.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
librtlsdr.py Initial commit: bandsaunter, an RTL-SDR signal scanner 2026-08-21 20:50:20 -07:00
livemap.py Give the aerodromes a colour of their own, and say what each aircraft is 2026-09-04 22:45:41 -07:00
morse.py Read the Morse a station sends over its own carrier 2026-09-02 07:57:18 -07:00
payload.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
pictures.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
protocols.py Decode data signals, starting with on-off keying 2026-08-28 12:55:37 -07:00
quality.py Read the stations that never say a word 2026-08-29 14:59:25 -07:00
ranges.py Remember runtime lock-outs, and let a lock-out be a span 2026-08-21 23:44:24 -07:00
recorder.py Draw the waterfall for everything that never spoke 2026-09-03 18:36:00 -07:00
scanner.py Never call a string of Morse tones "words" 2026-09-03 21:44:14 -07:00
schedules.py Ask a service that knows which leg it is, and fetch a map worth the screen 2026-09-04 20:19:53 -07:00
settings.py Draw the waterfall for everything that never spoke 2026-09-03 18:36:00 -07:00
simulator.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
sstv.py Read the pictures, the aircraft, the meters and the sensors 2026-08-29 19:38:37 -07:00
transcribe.py Draw the waterfall for everything that never spoke 2026-09-03 18:36:00 -07:00
tui.py A window on the sky, and flags on the routes 2026-09-04 13:38:47 -07:00
ui.py Aircraft, from the menus, on a live board, over a real map 2026-09-04 00:05:32 -07:00
waterfall.py Write the aircraft down, and draw where they went 2026-09-03 22:22:49 -07:00