Skip to content

0.0.3-pre-alpha

Pre-release
Pre-release

Choose a tag to compare

@dl3hc dl3hc released this 18 Aug 14:38
· 33 commits to main since this release

Release Notes — openALE 0.0.3-pre-alpha

Highlights

The setup wizard gets you further, faster. First-run setup now lets you set each net's scan dwell time while you're already there, and — once you close it — automatically arms the first configured net so scanning, sounding, and calling are ready to go without an extra manual step.

A new opt-in Tuner server for auto-tuners. openALE can now serve its current RX frequency read-only over the Hamlib rigctld/netrigctl protocol, so external tools like auto-tuners can follow along without opening a second, competing connection to the radio.

A dedicated Operator Audio Interface. The audio on the device you're actually sitting at — mic, speaker, notifications — is now a first-class concept separate from the transceiver's own Modem Audio, with a header toggle to listen in on the channel at any time and low-latency AudioWorklet-based audio under the hood.

Optional TLS (--tls) for remote GUI access. Browsers only grant microphone access and device listing on a secure connection, so opening the GUI from another device over plain HTTP (--remote) could never unlock the full Operator Audio Interface. --tls serves the GUI over HTTPS/WSS instead, with a self-signed certificate generated automatically on first run — see docs/TLS_SETUP.md.

New Features

  • Operator Audio Interface: the browser's own mic/speaker path is now a named, distinct interface from the transceiver's Modem Audio — configured entirely on whichever device the GUI happens to be open on. Device selection and notification preferences are saved in that browser only, never sent to the controller. Settings ▸ Audio Devices now shows Modem Audio and Operator Audio side by side.

    • Channel Monitor: a header toggle to listen in on the current channel's RX audio regardless of ALE link state.
    • Notifications: an optional ring while a call is incoming and a chime when a message arrives, synthesized locally and played through the selected speaker device.
    • Monitor Volume: an adjustable slider for Channel Monitor / Voice Passthrough speaker output, independent of OS volume.
    • The browser's mic/speaker audio path now runs on a dedicated AudioWorklet audio thread for lower and more consistent latency, with improved upsampling/downsampling quality. It automatically falls back to the previous behavior when accessed over a plain-HTTP remote/LAN connection.
  • --tls: serves the GUI over HTTPS/WSS instead of plain HTTP/WS, using a self-signed certificate generated automatically on first run (or your own via --cert/--key). Subject Alternative Names are auto-populated from every local network interface's IP address, plus localhost/127.0.0.1/::1. --tls-san HOST adds an extra hostname/IP for addresses that aren't a local interface. See docs/TLS_SETUP.md.

  • Tuner: opt-in read-only rigctld/netrigctl-compatible TCP server for external auto-tuner tools (Settings ▸ Tuner, both GUIs; disabled by default).

  • Setup wizard's Nets step gained an inline Dwell (ms) input, and now auto-selects the first configured net when the wizard closes. It also lists the actual .ale files present in your nets/ folder in a dropdown, instead of a free-text path that could drift from what's actually on disk.

  • All log output is now also written to openALE.log (auto-rotated once it grows past ~5 MB), so it survives after the console window is gone. If openALE ever exits unexpectedly, a new crash.log records what happened, including a resolved stack trace (function/file/line where available) on both Windows and Linux.

  • Settings ▸ Files: the LQA database can now be exported/imported like the Configuration and Channel files (previously a non-functional "Browse…" button).

Fixes

  • The "Sync" pill no longer stays lit indefinitely after a transmission ends — it now clears on a timeout instead of relying on true silence, which real receive noise rarely produces.
  • The Settings drawer no longer visibly paints over the icon rail while sliding open/closed (desktop).
  • RF transmit power no longer resets to 100% on a channel hop, scan, or sounding cycle — the radio now applies each channel's own configured power instead.
  • A damaged or truncated lqa.bin could crash openALE on startup; it's now rejected cleanly (with a clear reason logged) instead, and openALE just starts with an empty LQA table.
  • Setting TX power now tells you what happened: the ALE Log reports whether the connected rig supports power control and what it was set to, instead of silently doing nothing on rigs that don't support it.
  • The Settings drawer was too narrow for the LQA table, truncating columns and forcing a horizontal scrollbar (desktop). Widened to fit all columns without scrolling.
  • Scan dwell time on a real radio could occasionally run longer than configured: a periodic background CAT read could still be in the radio's command queue when a hop was due, delaying that hop. Channel hops, frequency/mode changes, and PTT now jump ahead of that background read instead of queuing behind it.
  • Settings ▸ Files: the Configuration, Channel, and LQA rows now behave identically (same button order, confirmation prompts, and refresh behavior), and a failed import/export now shows a real reason (e.g. "file not found") in the ALE Log instead of a bare "?".
  • AMD messages sent over an established link now send the TO address preamble twice, as MIL-STD-188-141B requires (matching leading calls, ACKs, and link termination) — previously it was sent only once.
  • Incoming AMD messages embedded in the calling frame or the response frame were silently dropped instead of being displayed. openALE now listens for AMD in all four frames MIL-STD-188-141B allows, and displays it immediately, independent of whether the resulting handshake goes on to link or times out.
  • Voice Passthrough / Channel Monitor playback could sound distorted on louder signals — the RX upsampler could overshoot past full scale on transients, which then got hard-clipped.
  • LQA reports could occasionally arrive corrupted or garbled at the receiving station: one that ran long enough to get cut off mid-transmission could leave the receiver's report parser stuck, splicing later, unrelated data into it.
  • The Idle/status pill was oversized compared to the neighboring Sync pill, and the header's Net, Sound, and Radio buttons could render at inconsistent heights. On many desktop window widths, the Radio button could also visually overlap the Transmit controls and lose most of its clickable area to them. All four now render at consistent, correctly-clickable sizes.