Releases: PsychoOI/NINFA
NINFA V1.4.2
NINFA V1.4.1
- Randomize button: respects baseline & eligible rows, safe during sessions
- Session saving: study folder + Study_S###R##[_v##].mat
- Plot saving: same scheme + collision-safe PNGs
- Blinding: saved metadata retained but kept out of filenames
- Minor UI polish & stability fixes
NINFA V1.4.0
- Blinded/Unblinded modes — choose how to run experiments.
- Feedback UI refactored to a state machine for smoother behavior.
- Channel mismatch alert to prevent misconfigured device/LSL setups.
- New probeset and normalization tweaks for more stable values.
- Session data now saves transfer runs.
- Fixes: bad-channel deselection, sham device issues (incl. missing channel).
- Docs & configs: README was refreshed, and device models were updated.
NINFA V1.3.0
🚀 What’s New
• Save transfer trials & raw feedback
– Now each exported sample has both raw and normalized feedback values.
• Record run type
– Every sample now carries a "feedback" vs. "transfer" flag in the saved .mat, making downstream analysis simpler.
🐞 Bug Fixes
• Unidentified short-channel crash
– Guard against missing SS channels in session.pushSample—we only shift SSwindow fields that actually exist, preventing “Unrecognized field” errors.
NINFA V1.2.8
Fixed
- Sham device raw‑760 nm count corrected from 51 to 52 (added devch 51)
NINFA V1.2.7
New
- Immediate sample pulling on OPEN (restores v1.1 behavior)
Fixed
- 0 Hz sample‐rate display
- Delay (“DELAY”) drift
NINFA V1.2.6
- Sham protocol now works.
- SS channel count displays correctly
- The UI now accurately detects and shows the number of short‑separation channels you’ve selected—no more off‑by‑one glitches.
- All‑channels selection UI bugs ironed out
- Various edge‑case issues in the channel‑selection tables have been smoothed over, so selecting or deselecting channels is rock‑solid.
- Device configurations fixed
NINFA V1.2.5
[v1.2.5] – 2025-06-11
Added
- ShamGauss protocol
- Gaussian-noise sham algorithm fully implemented.
process(...)signature updated to accept the new 11 arguments (marker, srate, idx, data, SSdata, windownum, window, SSwindow, isfullwindow, prevfeedback, prevmarker) and delegate to the original Gauss logic unchanged.
Changed
- Protocol list
- Removed the old “Gauss” entry; renamed/refactored it to
ShamGauss.mwith no adapter layer required. - MovAvg remains as the active real‐time NF algorithm, while “ShamGauss” serves solely as the control.
- Removed the old “Gauss” entry; renamed/refactored it to
v1.2.4
Release v1.2.4 – Robust Channel Selection & Improved UI Sync
Highlights:
-
Intelligent Channel Selection:
Channels from the device’s JSON channel_map are now only pre-selected if the user hasn’t already made a selection. This ensures default selections are helpful but never overwrite manual user choices. -
Manual Overrides are Persistent:
Users can deselect or reselect channels at any time—these choices persist throughout the session, even after UI refresh. The deselection part happens blindly without knowing which channels are selected. -
UI and Logic Always in Sync:
The interface accurately reflects the channels being processed for both NF (long) and SS (short) roles, providing full transparency and reliability. -
Improved Accessibility:
The “Bad Channels” (Deselect) button is now only enabled after the LSL stream is open, preventing invalid actions. -
Streamlined Layout:
“Bad Channels” controls have been moved directly under “Channels” in the settings for a more intuitive workflow.
NINFA 1.2.3
-
An optional channel JSON parameter: Load your long- and short-channel definitions directly from a JSON map.
-
Long and short channels validation: Checks that the map has both long_channels and short_channels and that every ID is in range.
-
No overlaps or duplicates: Detects if a channel appears in both long and short lists or if any ID is repeated.
-
User-friendly errors: Pops up clear, one-line alerts (e.g., “Field ‘short_channels.HbO’ contains duplicate IDs: [1]”).