RimuSDR 1.1.14 : Performance and stability

25 enhancements and 51 fixes across RimuSDR, RimuDAX and RimuCAT.

Version 1.1.14

Enhancements

RimuSDR

  • Receive audio latency - Received audio latency is cut from about 450 ms to about 80 ms. A packet backlog at playback start is now discarded, Opus decoding was moved off the GUI thread, and a new Audio tab in the Statistics dialog reports the latency live.
  • Uncompressed PC audio option - A new RX stream setting in Radio Setup > Audio > Output Device asks the radio for the uncompressed 24 kHz stream instead of Opus, for wired-LAN operators who can hear the codec on CW. It applies the next time PC audio starts, so the Radio/PC toggle gives a two-click comparison. SmartLink connections always use Opus.
  • Deeper RX buffering - The RX buffer control now reaches 2000 ms and gained a spin box beside the slider: drag for coarse, type for exact. Deep buffering can now ride out a link stall longer than about 300 ms; the default is unchanged at 60 ms.
  • Connect to Radio dialog - One connect dialog now covers local network, direct IP and SmartLink, and it opens by itself at startup and after a disconnect.
  • Minimizable slice flags - A slice tuning flag can now be minimized by clicking the slice letter, with a "Start Slices minimized" preference.
  • Continuous panadapter zoom - Zoom is now continuous, with a slider between the on-screen +/- buttons and a matching MIDI action, instead of only 2x steps. The ends of the slider are the radio's own bandwidth limits, and one +/- press is still exactly one octave wherever it starts.
  • Pan Display additions - The Pan Display panel gained the Weighted Average toggle and the Floor row.
  • Model-aware power metering - The RF power meter now scales to the rated PA power (for example 500 W on the AU-520), the SWR meter's red zone follows the PA type, and Aurora PA efficiency and temperature meters were added.
  • MIDI Controller dialog redesign - The MIDI Controller dialog and its binding model are now complete, and the first-time setup guide was rewritten with it.
  • MIDI binding entry - A MIDI binding can now be entered by hand, choosing Note or CC and its number, instead of only learned. This helps when a device sends several events per gesture.
  • Additional MIDI actions - Seven RX MIDI actions were added for the CTR2-Max, and the ATU toggle action now works. Also new: a PC volume action, and a CW sidetone level action for the one control on the CW panel's Sidetone row that could only be reached with the mouse.
  • Held Tune over MIDI - A held Tune action drops the carrier when the control is released. The existing toggle leaves an unattended carrier up if the second press never arrives or the controller is unplugged mid-tune.
  • PTT over MIDI - A new [TX] PTT action keys the radio on a MIDI Note On and unkeys it on the Note Off, in modes other than CW, alongside the existing MOX toggle.
  • CTR2 MIDI templates - The CTR2-Dial and CTR2-Max templates were updated with new action mappings, including knob-to-button actions.
  • CW APF level slider - Added to the slice DSP panel.
  • Slice DSP level control - Every leveled slice DSP function (NB, NR, ANF and the rest) can now be adjusted from the DSP page through one slider with a dropdown selector.
  • Filter preset store selection - Display Settings can now choose which filter-width preset store is used: automatic (the radio's when its filter-preset feature is licensed, otherwise this PC's), or either one forced. The choice applies with no restart, and the screen says which store is live and why.
  • Control usability - The AGC-T, squelch, AF gain and pan sliders now show their value in the tooltip. The mouse wheel steps the RIT and XIT boxes while they have focus, and those boxes step by 10 Hz. In the panadapter ANT dialog, RF gain is now a slider with one stop per value the radio offers.
  • System Info radio details - System Info now reports the connected radio and its attached accessories (ATU, GPS/GNSS, amplifier), which speeds up triage of a problem report.
  • Network Diagnostics jitter - The Network Diagnostics graph gained a jitter series beside the latency trace.
  • Diagnostic logging - A radio's refusal of CW keying or a CWX message now leaves a usable trace in a shipped build's log, and the audio latency summary now reaches the log too, triggering on genuine underruns.
  • Audio dropout diagnostics - The longest gap between received audio packets is now reported in the Statistics dialog's Audio tab and in the log; this is the number that explains a dropout, and the one the RX buffer has to exceed. The uncompressed stream's ingest drop count and the stream format in use are shown beside the other RX health counters.
  • Connection Statistics dialog - The Statistics and Network Diagnostics dialogs are combined into one Connection Statistics dialog, opened from Settings > Connection Statistics... or the status-bar network icon; View > Statistics... is removed. The two old dialogs graded the same connection from unrelated inputs and could disagree, so the dialog now shows two verdicts that answer separate questions: Network (is the link delivering packets?) and This Computer (is this PC keeping up with what arrived?). A new network loss table on the Errors tab shows real per-stream loss for the panadapter, waterfall, RX audio, meters and the DAX streams RimuSDR opens. The Network verdict now also counts lost meter packets, so it reflects loss even when no audio stream is open. The dialog is resizable and remembers its size.

RimuDAX

  • Connect to Radio dialog - RimuDAX now presents the same Connect to Radio dialog as RimuSDR and RimuCAT, with local network, direct IP and SmartLink connections all in one place. The separate "Connect via SmartLink..." menu entry is gone; the dialog opens from the menu only and never pops up on its own.

RimuCAT

  • Connect to Radio dialog - RimuCAT now presents the same Connect to Radio dialog as RimuSDR and RimuDAX, with local network, direct IP and SmartLink connections all in one place. The separate "Connect via SmartLink..." menu entry is gone; the dialog opens from the menu only and never pops up on its own.

Fixes

RimuSDR

  • Audio latency at connect - The audio stream created at connect no longer starts about 150 ms deeper than a restarted stream, and Radio Setup gained a user-adjustable RX buffer cap.
  • RX buffer over SmartLink - The play-out queue never held more than about 30 ms on a SmartLink connection whatever the slider said, so its promise to absorb jitter was empty there; it now fills to the depth the slider asks for.
  • PC audio over SmartLink - Every PC-audio start on a SmartLink connection sent a second stream request that the radio refused; audio was already flowing from the first.
  • Equalizer panel at connect - The panel no longer reloads itself 83 times at connect, which also wrote nearly 500 lines into the log each time.
  • RX audio gain slider - Moving the slider no longer rewrites the configuration file, re-resolves the band privileges file and repaints every panadapter on every tick; the value is now saved once per drag.
  • Escape during CWX - Escape now immediately aborts a CWX transmission from anywhere in the CWX panel's window, not only from a message field.
  • P/CW panel after split - The panel no longer stays in phone mode on the transmit slice created by enabling split while in CW mode.
  • First CW key-down after connect - The network CW stream is now pre-warmed at connect, so the first key-down no longer races the stream setup.
  • MIDI unplug crash - Fixed a crash on unplugging a USB MIDI controller, such as the CTR2-MIDI, on Windows 11.
  • MIDI knob behavior - Knob controls other than the VFO now read as absolute 0-127 sliders instead of centered wheel encoding, matching the default output of CTR2 controllers.
  • CW MIDI keying - MIDI keying now follows the transmit slice's mode. With a radio connected, the paddles and straight key act only in CW modes, and [TX] PTT only in other modes. A straight key no longer sends a tone in USB, and a keyer that sends more than one note per contact closure keys correctly. Also fixed a swallowed press after a replayed event burst, a role stuck held after a canceled Learn, and a Learn that never ended.
  • Wheel-wired MIDI knobs - A knob wired as a wheel now drives eleven controls that ignored it: RIT and XIT offset and the nine slice DSP levels. A binding also now says whether its control is wired as a slider or a wheel, which is what made Speaker Volume and Headphone Volume appear dead on a wheel-wired knob.
  • MIDI paddle input - A paddle release that arrives without its press now sends the brief tap it was instead of being discarded, so the operator no longer feels the paddle move and hears nothing. A note squeezed into two keying roles at once is refused.
  • Transmit during MIDI setup - Transmit is held back while the MIDI Controller dialog is open. The dialog invites you to press controls to find and learn them, and every such press also keyed the radio, asserted MOX or started a tune.
  • MIDI action list size - The Add list of 87 actions now scrolls at its intended 12 visible rows instead of covering the screen.
  • Held MIDI controls on unplug - A held MIDI Trigger action no longer stays asserted when the controller is unplugged. A held tune left the carrier up, a held PTT left MOX on and a held key or paddle left the transmitter keyed, until the application was closed or the on-screen control was clicked.
  • Held MIDI controls on a slice change - A held Trigger is now released whenever the transmit slice changes, not only when the change crosses the CW/not-CW boundary. Switching USB to LSB, or moving the transmit role to another slice in the same mode, could otherwise carry a held carrier to whatever band that slice was on.
  • TX status indicator - Now shows transmit while a transmission winds down, keeps a fixed width so "Not Ready" is no longer clipped, and its Receive and None labels were corrected. It also gained a tooltip showing the PTT source and why transmit is inhibited.
  • ATU button tooltip - Now names the actual interlock reason that blocks a tune, and says the click will bypass while the ATU is engaged instead of offering to start a tune.
  • Clear ATU Memories - The right-click item on the ATU and MEM buttons now asks for confirmation and defaults to No. It previously cleared every stored tune solution the instant it was chosen, with no warning and no undo, so a right-click that landed one item too far discarded all of them silently.
  • Tuner Genius XL with an internal ATU - With two slices on different transmit antennas, RimuSDR could decide the wrong way whether a Tuner Genius XL owns the transmit path, because it checked the transmit slice rather than the active slice. That decision drives the ATU's Success and Byp indicators, whether the radio's internal ATU is enabled, and whether ATU memories apply, so all three could be wrong on a station with both.
  • Refused Tuner Genius tune - A TUNE press that could not be sent no longer fails silently. It is refused when no slice is active, when the active slice's transmit antenna is on neither tuner port, or when the transmit interlock is not ready. All three reasons are now logged, and an interlock refusal is also shown to the operator.
  • TUNE button - Now reflects a tune already in progress when the client connects mid-tune.
  • TUN panel SWR meter - No longer pegs full-scale when there is no reflection data.
  • Tuning a zoomed-out slice - A zoomed-out slice can now be tuned: the passband and tuning-line grab zones extend past the drawn rectangle instead of being clipped to it.
  • Single click to tune - The Radio Setup toggle was impossible to turn on; the feature is now reachable and also works on the waterfall.
  • Tune guides - Guides are now drawn correctly around a minimized slice flag, and the mouse no longer sticks when moving under a flag with Tune Guides on.
  • Pan Display Avg slider - No longer stuck at zero; the panel now follows the radio while it is open instead of showing a snapshot.
  • RF Gain in the ANT dialog - The field now refreshes when the RX antenna is changed.
  • Divider drag performance - Dragging the panadapter/waterfall divider no longer reloads the band privileges file and rewrites the configuration once per pixel; the position is saved once per drag.
  • Waterfall time scale - The time scale now follows the Rate control, instead of staying at whatever the rate was when the client connected. The history depth setting now means minutes at every rate rather than only at 50 ms per line, the axis no longer goes blank at fast rates, a one-row plot no longer divides by zero, and the Rate slider can no longer be set to a value the radio rejects.
  • Slices from external clients - A slice created by an external client (for example a Node-RED script) is now tracked correctly, fixing intermittent TX-focus misbehavior.
  • Factory filter-width presets - The factory presets now match the radio's own. Three of the five mode groups disagreed, so the same preset button gave a different width depending on which store was in use; the RimuSDR-only SSTV, FDV and PSK presets are dropped, and the values shipped now are the radio's.
  • Filter store naming - The Filters panel now names the preset store in use, so Reset to Defaults no longer restores the radio's table while the screen calls the result factory defaults.
  • SmartLink session handling - The connect dialog and the SmartLink Manager now share one SmartLink session, and the session ends when the manager closes, so no SmartLink connection lingers behind a disconnected screen.
  • SmartLink Manager table - The radio table is no longer cut off at the dialog's default size.
  • Expired SmartLink sign-in - A saved SmartLink account whose token has expired now asks for the password, with the address filled in and the caret in Password. Clicking such an account left the dialog on the account list, a dead end whose Connect button could only produce the same expiry again.
  • Long SmartLink addresses - A saved SmartLink account with a long address is now shortened with an ellipsis instead of widening the row and pushing its Connect button out of view.
  • Side panel layout - The AGC-Spd dropdown is no longer clipped, and indicator widths are fixed so their text fits.
  • PHONE panel TX filter labels - The Low Cut and High Cut headings are now centered over their own spin boxes instead of offset to the right.
  • TX profile name clipped - The TX profile drop-down no longer cuts off the end of a longer profile name.
  • Disabled sliders - A disabled slider is now painted as disabled instead of looking exactly like a live one.
  • EQ display - Now follows a Mic profile change instead of showing the old curve.
  • Two-way switches - A two-way switch can no longer end up with neither side selected. Clicking the already-selected side of the Radio/PC audio selector, or of CWU/CWL, Dot-Dash/Dash-Dot or iambic A/B, turned it off while the application stayed in that mode; that is how the speaker volume slider could go missing in PC audio mode.
  • FlexControl button - The button is now a setting you own. It was overwritten at every start by a hidden auto-detect setting and refused to turn on unless the knob was already plugged in; it can now be armed first and the knob connected later.
  • Connection Health readout - The graded word was low-contrast green and red text on the dialog background; it is now drawn from the theme palette with a level glyph beside it.
  • Windows crash reporting - Crashes through abort() or terminate() now produce a crash report instead of nothing, and crash reports are now symbolized, showing function names instead of bare hex addresses.
  • Windows installer contents - The installer no longer puts files into the program folder that the application never uses: a development launcher script, a second copy of the installer's artwork and license text, build resource files, and debug Qt plugins that could never load, about 5 MB in total. RimuSDR.exe now carries version and publisher details, shown in its Properties dialog.
  • License activation - A license could be rejected after a restart on a machine that had not changed, asking for the license key to be entered again. Activation is now recognized reliably.

RimuCAT

  • Winkeyer port lockup - The Winkeyer port no longer stops responding after the radio refuses a CW send, for example with a slice in the wrong mode or another client already transmitting. Held text is now released once the CW engine goes quiet, so a refused send costs one short wait instead of disabling the port until it is removed and re-added. A Winkeyer port with no radio bound reached the same dead state and is fixed too.
  • Winkeyer statistics - Inbound chunks are no longer counted twice in the port row's RX total or written to the traffic log twice.
×