Releases: cdub89/SmartStreamer4
SmartStreamer4 v0.1.20b
SmartStreamer4 v0.1.20b
New
- Digital Mode (#28). SmartStreamer4 now sets up and launches WSJT-X, JTDX-Improved, and WSJT-Z (FT8/FT4) against your FlexRadio, one instance per slice, several slices at once.
- A new Launch tab is the app's home: connect to the radio, then start CW Mode (the CW Skimmer experience, unchanged) or Digital Mode.
- The streamer provisions each instance automatically: DAX RX audio device, SmartSDR CAT TCP port, unique UDP reporting port, and your call/grid are written into a per-slice profile. Your engine settings (window layout, band, FT8/FT4 choice) are preserved across launches.
- Per-slice Start/Stop on the Digital tab. Stop closes the engine gracefully so it saves its settings. A soft notice warns when a slice is not USB/DIGU (still launchable).
- Live-validated with two concurrent WSJT-X instances on SmartSDR 4.2.20 / DAXv2, including CAT, audio, and UDP port isolation per slice.
- Setup Guide rewrite (#47). The in-app guide (Help tab, Setup Guide) now covers both modes: the Launch workflow, step-by-step SmartSDR CAT TCP port creation, DAX channel assignment, digital troubleshooting, new screenshots throughout, and quick links on page 1 to jump to the Initial, CW, or Digital setup sections.
- Connect diagnostics (#42). The Logs tab gains
[FLEX]lines covering the connect path, GUI clients, pan/slice/IQ lifecycle, and disconnect cause, to make field reports actionable.
Fixes
- Radio and station disconnect detection (#45). Disconnects are detected more reliably, and a disconnect now stops all running apps (CW Skimmer and digital engines) and returns cleanly to mode selection.
- Foreign band change on a shared DAX-IQ channel (#43). LO sync is now gated by the source station, so another station's band change no longer disturbs your running skimmer.
- Trailing space in station name (#30, #44). Station names are trimmed at runtime, so a Maestro station named with a trailing space no longer shows an empty Operating tab or a missing DAX stream.
Install
Download the zip, extract, run SmartStreamer4.exe. Digital Mode additionally needs WSJT-X, JTDX, or WSJT-Z installed plus a one-time SmartSDR CAT port setup; see the Setup Guide on the Help tab.
SmartStreamer4 v0.1.19b
SmartStreamer4 v0.1.19b
Fixes
- Multi-station launch (#40). CW Skimmer no longer launches with the wrong station's panadapter or slice frequency when two stations share a DAX-IQ channel.
- Multi-station UI attribution (#39). Panadapter center frequency and slice now display under the correct station.
- Audio device renumbering (#38). A warning fires when SmartSDR or DAX updates shift MME device indices, with one-click jump to the Set Up Wizard.
- #30 — Maestro-C absent from Network Discover on SmartSDR 4.2. SmartSDR and DAX work normally. Repro logs welcome.
New
- DAX station-mismatch dialog (#39). When the same DAX-IQ channel is assigned on multiple stations, clicking Start opens a confirmation reminding you to verify DAX-the-app's selected station.
- Connect-time diagnostics. Logs tab shows the list of connected GUI clients on connect, and the CW Skimmer launch line shows the effective audio device indices and mode.
- Setup Wizard link styling (#37). Bold orange on the Config tab.
%APPDATA%folder rename (#34).%APPDATA%\SDRIQStreamer\is renamed to%APPDATA%\SmartStreamer4\on first launch. Automatic, no operator action.
Install
Download the signed zip, extract, run SDRIQStreamer.exe.
SmartStreamer4 v0.1.18b
SmartStreamer4 v0.1.18b
What's new for operators
CW Skimmer sync stays in sync across band changes
Skimmer sync no longer drifts when you switch bands or change panadapter
centers. Field-validated on both SmartSDR 4.1.5 and 4.2.x. (PR #33)
DAX.exe startup check
The app now detects when DAX.exe is not running at startup and shows a
Retry / Ignore dialog before attempting to connect to the radio. Runs
independently of radio connection state, so it fires whether or not a
radio is selected. (#29, PR #31)
Setup wizard Step 3: real MME and WDM endpoint names
The Reset / Setup Wizard's Step 3 (Settings, Audio Tab: Capture Device
Numbers) now has separate labels for each MME and WDM input box,
showing the friendly name as it appears in CW Skimmer's Audio tab
dropdown:
- MME column:
ch N - DAX IQ N (FlexRadio DAX)(matches MME dropdown
on SmartSDR 4.2.x; on 4.1.5 the dropdown shows
DAX IQ RX N (FlexRadio Systems DAX IQ)instead and you map by row
order) - WDM column:
ch N - DAX IQ N(matches WDM dropdown)
The wizard also opens centered on the screen regardless of where the
main window is positioned. (#26)
About / version display now shows a real build date
Earlier shipped builds displayed -- for the build date because of a
single-file-app limitation. Now reads the actual exe build date so the
About panel shows the correct value.
Behind the scenes
- Two-phase release pipeline (
publish-release.ps1and
publish-release.ps1 -Publish) with tag-driven version
source-of-truth, embeddedProductVersionverification gate, and
idempotent SHA256SUMS updates.gh release create --latestis
hard-coded. - New
vMAJOR.MINOR.PATCHbNpatch-on-beta convention documented
(e.g. v0.1.17b1). - CONTRIBUTING.md created and revised based on dogfooding from #29.
- README build/test commands corrected to match the project layout.
Compatibility
Works with SmartSDR servers 4.1.5 and 4.2.x. FlexLib 4.2.18 client. No
new runtime requirements.
Install
Download SmartStreamer4-v0.1.18b-win-x64.zip, extract to your install
location, and run SmartStreamer4.exe. The in-app update check will
pull future releases.
SmartStreamer4 v0.1.17b
SmartStreamer4 v0.1.17b
Fix
- CW Skimmer telnet spam. v0.1.16b's
CwSkimmerSyncTrackerre-emitted the last-sentSKIMMER/LO_FREQandSKIMMER/QSYevery 5 seconds indefinitely, even on a stable channel where nothing had changed. The 5-second heartbeat re-send has been removed; the tracker now sends only when desired LO or VFO actually differs from what was last sent. Stable channel = zero telnet traffic. - All event-driven sync (slice tune, band change, RIT, click-tune, initial seed at telnet connect) is unchanged.
Validation
- Live-tested on hardware with SmartSDR 4.2.x. Telnet log goes silent on idle channels; sync still flows correctly on every state change.
- SmartSDR 4.1.5 validation will run during soak.
Asset
SmartStreamer4-v0.1.17b-win-x64.zip— self-contained single-file Windows x64 build.- SHA256 in
artifacts/release/SHA256SUMS.txt.
SmartStreamer4 v0.1.16b
SmartStreamer4 v0.1.16b
Beta release focused on a clean rewrite of the CW Skimmer sync path. Resolves the symptom where CW Skimmer needed a manual "jiggle" of the panadapter or VFO before it would start tracking after startup or band change (issues #21, #23).
What changed
Sync architecture redesign. The previous mix of debounce queues, stability resends, and telnet-layer duplicate suppression had a timing collision that silently dropped the band-change resend. Replaced with a single per-channel CwSkimmerSyncTracker that owns "desired vs last-sent" state and emits only on real changes plus a 5-second heartbeat. The heartbeat naturally covers skimmer's startup IQ-pipeline race without any nudge logic.
Result on bench testing (4.2.x, two slices / two panadapters): tracking is reliable on startup and across band changes within the ±24 kHz IQ window, no manual intervention needed.
What stayed the same
- RIT tracking (effective RX freq feeds into the new tracker exactly as before)
- Auto-step click snap and inbound echo suppression
- Click-to-tune from skimmer back to slice
- Spot publishing to the Flex spot system
- All UI and INI workflows
Known limitation (unchanged from prior betas)
When a slice moves more than ~24 kHz from the panadapter LO, CW Skimmer can't see signals at the new frequency until the panadapter recenters — this is the IQ window edge at 48 kHz sample rate. The SmartSDR client recenters on its own cadence; this app does not actively move the panadapter.
What to look for in soak
- Cold start with skimmer running on configured channels — does it track immediately?
- Band change while skimmer is running — does it follow within the ±24 kHz window?
- Click-tune from skimmer — does the slice tune correctly without echo loops?
- RIT — does skimmer's VFO follow the effective RX (slice + RIT)?
If anything regresses, please file an issue and we'll roll a quick v0.1.17b.
Files
SmartStreamer4-v0.1.16b-win-x64.zip— self-contained single-file Windows x64 build
SmartStreamer4 v0.1.15b
Beta 15 — incremental UI and documentation improvements.
What's new
- Operating and Config tabs now have a vertical scroll bar so the app can run in a smaller window footprint (closes part of #22).
- README and Setup Wizard refine the "Reset Channel INI" guidance with explicit criteria for when to use the Reset button (master INI driver/device changes, schema-change releases, post-upgrade hangs). Logs are called out as separate and not affected by Reset.
- Repository renamed to SmartStreamer4. In-app URLs (Get Support button, auto-update endpoint, wizard issue links) point at the new name. Existing v0.1.14b installations continue to find this release via GitHub's permanent rename redirect (closes #24).
Notes
- No functional changes to audio enumeration, FlexLib integration, or CW Skimmer launch behavior since v0.1.14b.
Verify
SHA256 of SmartStreamer4-v0.1.15b-win-x64.zip:
de9d2baae9151219d7ba25095d28c33d40621f5ae9733661fb63e588cc199908
SmartStreamer4 v0.1.14b
SmartStreamer4 v0.1.14b
Highlights
- Fixes multi-channel CW Skimmer launch failures on machines where CW Skimmer's WDM device dropdown ordering does not match WinMM enumeration. Channels 2-4 now launch reliably from a single calibrated baseline.
- Pivots channel INI generation to MME-only auto-derivation: each channel's
MmeSignalDevis resolved at launch by looking upDAX IQ {N}(DAX v2) orDAX IQ RX {N}(DAX v1) in the live WinMM enumeration. No anchor, no delta math, no per-channel manual calibration required. - Generated channel INIs always emit
UseWdm=0regardless of the master INI setting. CW Skimmer's WDM enumeration uses an opaque kernel-streaming order that cannot be replicated programmatically — see issue #19 for the full analysis. - Adds DirectSound capture / output enumeration to the device diagnostic dump (
artifacts/cwskimmer/ini/device-diagnostic.txt) for future debugging. - Updates README, Setup Wizard, and Reset Channel INIs dialog to specify MME as the only reliably supported soundcard driver. WDM is documented as experimental and explicitly noted as requiring manual per-channel calibration in CW Skimmer.
Included Assets
SmartStreamer4-v0.1.14b-win-x64.zipSHA256SUMS.txt
Operator Notes
- Master INI calibration must use MME. Run CW Skimmer manually, set Soundcard Driver = MME, Signal I/O Device =
DAX IQ 1 (FlexRadio DAX), and Audio I/O Device to any local audio output. Exit CW Skimmer to save. Channels 2-4 are auto-derived at launch — no further per-channel setup needed. - Existing channel INIs from v0.1.13b or earlier still carry
UseWdm=1. After upgrading, click Reset Channel INIs in the streamer to re-seed channel INIs from the (MME-calibrated) master. Otherwise the old WDM values will persist. - WDM mode is experimental: only the manually-calibrated baseline channel will work; channels 2-4 require launching each channel manually once in CW Skimmer with the correct device picked by hand and then exiting to save the per-channel INI.
- Field-validated on Windows 11 with FLEX-6400M, SmartSDR 4.2.x, DAX 4.x. Channels 1 and 2 launched cleanly with auto-derived MME indices.
SmartStreamer4 v0.1.13b
v0.1.13b — MME/WDM Driver Stability
Fixes
- DAX-IQ stream removal debounce — SmartSDR 4.2.x transiently removes and re-adds the DAX-IQ stream during pan moves and QSY. A 1.5 s grace period now prevents CW Skimmer from being stopped on these transient events.
- DAX-IQ IsActive=false no longer stops skimmer —
IsActive=falsemeans CW Skimmer (via WDM or MME) is the active audio consumer, which is the expected state while skimming. The erroneous stop on this flag has been removed entirely. - UseWdm setting now honoured — The WDM vs. MME driver choice from the master CW Skimmer INI was previously ignored (hardcoded to WDM). The setting is now read from the master INI and written correctly to each channel INI.
Recommendation
MME is recommended for SmartSDR 4.2.x. Testing shows MME produces a more stable waterfall and better decode rates than WDM on at least some machines. WDM also works but your results may vary.
To switch driver: change the Audio tab in CW Skimmer standalone, save/exit, then use Reset Channel INIs in the streamer so the new setting is picked up on next launch.
Checksums
5b1ded11fffb8ba761c33b1e6c73d5eac4d25181381445251487d7101b9aca44 SmartStreamer4-v0.1.13b-win-x64.exe
SmartStreamer4 v0.1.12b
SmartStreamer4 v0.1.12b
Highlights
- Upgrades FlexLib integration from v4.1.5.39794 to v4.2.18.41174 (SmartSDR 4.x / firmware ≥ 3.3.32.8203 required).
- Updates CW Skimmer Audio tab guidance with confirmed device settings for both WDM and MME driver modes under SmartSDR 4.2.x.
- Adds WDM and MME reference screenshots to the in-app Setup Wizard.
- Documents the 4.1.5 → 4.2.18 FlexLib API surface changes in
Flexlib4-2-Migration-Guide.mdand README §11.
Included Assets
SmartStreamer4-v0.1.12b-win-x64.zipSHA256SUMS.txt
Operator Notes
- Requires radio firmware ≥ 3.3.32.8203. Update firmware before connecting with this build.
- CW Skimmer Audio tab: set Signal I/O Device to
DAX IQ 1(WDM) orDAX IQ 1 (FlexRadio DAX)(MME). Audio I/O Device is for local monitoring only — any local audio output is correct. - No application source changes were required for the FlexLib upgrade; the breaking API changes in 4.2.x (
HAAPI.AmplifierFaultrename,HAAPI.AmpIsSelectedremoval) are not used by this app.
v0.1.11b
SmartStreamer4 v0.1.11b
Highlights
- Stabilizes CW Skimmer channel configuration with a calibration-first workflow based on a manually validated IQ1/Audio1 baseline.
- Preserves operator audio endpoint corrections by writing channel INI audio settings only on first channel file creation.
- Adds a Config-tab reset action for channel INI files, including a safety block when CW Skimmer is running.
- Rebrands the application and metadata to
SmartStreamer4with publisher metadata set toARS WX7V.
Included Assets
SmartStreamer4-v0.1.11b-win-x64.zipSHA256SUMS.txt
Operator Notes
- After resetting channel config files, run CW Skimmer manually and verify Audio tab selections are calibrated to
DAX IQ RX 1andDAX Audio RX 1before restarting normal automation.