Blackchirp 1.1.0

Blackchirp 1.1.0 is the final release of the v1.x line. It introduces the overlay subsystem, the standalone blackchirp-viewer offline visualization application, a theme-aware SVG icon set, a precision- aware ScientificSpinBox widget, and expanded curve-appearance controls in the FTMW plot. Several Sirah Cobra and Harvey Mudd LIF hardware additions ship in this release alongside reliability fixes across the overlay manager, sequence-mode aborts, the LIF tab, and the MKS 946 pressure controller.

Highlights

  • Added the Overlays subsystem: catalog (SPCAT/XIAM), generic XY (CSV/text), and other-experiment overlays managed through a unified dialog and a sortable, drag-and-drop overlay table that persists per-experiment under the experiment directory. See Overlays.

  • Added blackchirp-viewer, a standalone read-only application for inspecting completed experiments without bringing up hardware or acquisition. See Blackchirp Viewer.

  • Migrated the icon set to scalable SVG using Heroicons with theme-aware colors that follow the active palette. See User Interface Overview.

  • Added a precision-aware ScientificSpinBox with adaptive stepping and unit-suffix support, and overhauled the plot context menu with a curve-appearance submenu, alpha-channel color selection, and copy/paste of curve settings. See Plot Controls.

  • Extended LIF hardware support, including Sirah Cobra compensator calibration updates and the additions required for the Harvey Mudd LIF instrument. See LIF Experiment Setup.

Build and distribution

  • Switched to the MIT license.

  • Migrated the source tree to C++20 and resolved deprecated Qt6 lambda captures.

  • Forced UTF-8 file encoding for sources and on-disk data files. See Installation.

Hardware drivers

The LIF experiment setup and LIF Configuration dialog pages cover the hardware additions in this section.

  • Added Sirah Cobra control updates and external-crystal-stage support tailored to the Harvey Mudd LIF instrument.

  • Added support for new Harvey Mudd LIF hardware types.

  • Cleaned up the CommunicationProtocol inheritance graph for hardware drivers.

Acquisition and data flow

  • Added differential-backup viewing during a running experiment, showing the change between the current state and the most recent backup. See Viewing FTMW Data.

  • Multi-step acquisitions (LO scan, DR scan, LIF delay scan) now gate the digitizer between steps and discard potentially-stale waveforms after each transition. See Sequence Mode.

  • Pulse generators are now paused while the user edits experiment settings, preventing fired pulses during configuration. See Experiment Setup.

  • Experiments can be loaded from a path without specifying their number. See Data Storage.

  • Backups are viewable while an experiment is still running. See Viewing FTMW Data.

Overlays

The new overlay subsystem is documented end-to-end in Overlays; the bullets below summarize the visible additions.

  • Added the unified Overlay Dialog and Overlay Manager widget with type-specific configuration for BCExpOverlay, CatalogOverlay, and GenericXY overlays.

  • Catalog overlays support SPCAT and XIAM input with optional Gaussian convolution, intelligent state tracking, and cancellable chunked computation.

  • Generic XY overlays auto-detect column layout from CSV and whitespace-separated text input.

  • Overlay table supports drag-and-drop reordering, sortable columns, per-row enable/disable, and an editable comment column.

  • Overlay rename supports a sanitization preview and collision-safe label protection.

  • Overlays can be filtered to a frequency range with cached results and dedicated range spin boxes; per-overlay autoscale is available alongside an overlay-aware autoscale on the FTMW plot.

  • Overlays persist asynchronously to disk under the experiment directory, integrated with the experiment lifecycle so reopening an experiment (in the main application or in the viewer) restores its overlays. See Data Storage.

  • Disk-loaded catalog overlays force a stick-plot rendering with convolution disabled to keep prior-experiment views faithful.

  • Starting a new experiment can copy overlays forward from the previous experiment.

User interface

  • Added the curve-appearance management system: per-curve type, alpha-channel color selection, autoscale attribute, copy/paste, and a preset manager with nine default presets. See Plot Controls.

  • Added the ScientificSpinBox widget with precision-aware display and adaptive stepping. See User Interface Overview.

  • Added the LIF delay-point randomization option. See LIF Experiment Setup.

  • Added a new transparent Blackchirp logo.

  • Added an LIF display refresh timer for smoother trace updates. See Viewing LIF Data.

Tooling

  • Added blackchirp-viewer, a standalone read-only application for inspecting completed experiments. The viewer shares the main codebase, has no hardware or acquisition dependencies, and supports the FTMW, LIF, Tracking, and Log tabs along with overlays. See Blackchirp Viewer.

File formats and data storage

  • The FT header stored alongside FTMW experiments was extended. See Data Storage.

  • FTMW configuration is reset when the displayed experiment changes, so stale FT settings do not carry across files. See Viewing FTMW Data.

Bug fixes

Overlays.

  • Fixed crashes when starting a new experiment with an overlay open (2471b75e).

  • Fixed a segmentation fault in FtmwViewWidget destruction (e455e08d).

  • Fixed overlay label sanitization so comma-bearing labels no longer break the per-experiment CSV (3608d2a2).

  • Fixed validation and UI-interaction defects in the GenericXY overlay path (444b43d9, 8703c7f7).

  • Fixed path validation during overlay-widget initialization (3b856af3).

  • Fixed batch-paste and clipboard-contamination defects in the Overlay Manager (06a7686a).

  • Fixed curve-appearance initialization timing in the overlay settings dialog (81133fc7).

  • Fixed a validation bypass that allowed duplicate overlay labels (653c8708).

  • Fixed overlay appearance propagation by removing automatic preset application (357187c7).

  • Fixed inconsistencies in overlay creation, removal, and persistence (0feac4cc, b50820ce, 56996a05).

  • Fixed XIAM parser fixed-column parsing, including ints=2 mode, and group inheritance (ada63d26, 7ad95172).

Acquisition.

  • Fixed a UI lock when aborting a sequence experiment (641e4f95).

  • Fixed a thread-safety issue in FtWorker cleanup that could surface as a QObject::startTimer warning (0d4d63c9, c0fd5395).

Hardware.

  • Fixed a bug in the MKS 946 driver when enabling PID mode and added several follow-up MKS 946 fixes (8f37803b, eec074ae).

  • Fixed the QC9214 sync-channel bug (7183bd12).

  • Fixed a typo in the Sirah hardware code (06344407).

  • Fixed a minor Rigol DS2302A scope issue (6f5d4fa1).

LIF.

  • Bundled LIF storage, trace-display, and spectrogram-plot fixes along with M4i-2211-x8 fixes (65385b9d).

  • Fixed the LIF trace display on the LIF control widget (5e2eeccc).

Python module.

  • Bumped the companion blackchirp Python module and fixed reordered FID processing in the analysis path (a3f017af, 5309e7eb).