Skip to content

Releases: PsychoOI/NINFA

NINFA V1.4.2

02 Nov 13:49
b44a8f0

Choose a tag to compare

A quick hot fix

NINFA V1.4.1

02 Nov 13:34
e8a9b22

Choose a tag to compare

  • 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

17 Oct 09:26
8583462

Choose a tag to compare

  • 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

01 Aug 09:59
9243abf

Choose a tag to compare

🚀 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

23 Jul 15:03
7c8aa21

Choose a tag to compare

Fixed

  • Sham device raw‑760 nm count corrected from 51 to 52 (added devch 51)

NINFA V1.2.7

23 Jul 14:18
55a8135

Choose a tag to compare

New

  • Immediate sample pulling on OPEN (restores v1.1 behavior)

Fixed

  • 0 Hz sample‐rate display
  • Delay (“DELAY”) drift

NINFA V1.2.6

15 Jul 15:46
d012438

Choose a tag to compare

  • 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

11 Jun 13:50
7478d6c

Choose a tag to compare

[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.m with no adapter layer required.
    • MovAvg remains as the active real‐time NF algorithm, while “ShamGauss” serves solely as the control.

v1.2.4

10 Jun 14:22

Choose a tag to compare

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

09 May 13:50
9d00129

Choose a tag to compare

  • 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]”).