What’s new#
Version 1.1.0#
Unreleased
New features#
NFPlotnow draws a live, toggleable dashed threshold line for the protocol driving each modality — fixed forThresholdProtocol, adaptive (redrawn every push) forZScoreProtocol.NFPlotnow shades a translucent green reward span over the time windows where the driving protocol is currently rewarding the subject, also independently toggleable. A 🟢 prefix marks reward-active updates in the status bar.EpochPlotsupports interactive click-to-reject bad-epoch marking: left-click a shaded epoch span to mark it bad (rendered in red), click again to restore it. Marked epochs are tracked viabad_epoch_idsandis_epoch_bad().CLI:
--protocol {threshold,zscore}explicitly selects the reward protocol, with automatic inference from--threshold/--zscore-*flags when omitted; new--zscore-min-stdoption avoids the default standard-deviation floor swamping small-magnitude features (e.g.sensor_power).New
connect_to_array()connects a session to a plain in-memory numpy array instead of an LSL stream, driving the exact samerecord_baseline()/record_main()pipeline with no LSL networking or recorded file required — useful for offline analysis, unit tests, and demos. Backed by the newArrayStream.
Bug fixes#
Fixed a crash when closing one plot window (e.g.
RawPlotorTopomapPlot) while other plot windows remained open.mne.datasets.eegbci.load_data()is now called withupdate_path=Truein the motor-imagery example, avoiding an interactive prompt that hung non-interactive/CI gallery builds.Fixed
compute_bandpower()always raisingTypeErrorwithmethod="multitaper"due to an invalidaxisargument passed to MNE’spsd_array_multitaper().Fixed
create_report()raisingFileNotFoundErrorwhen called without a priorrecord_baseline()orrecord_main()call, since the session’s output directories were never created in that path.