Brain Innovation

Software Made with Passion

Turbo-Satori — Real‑Time fNIRS Analysis & BCI/Neurofeedback Application

Turbo‑Satori is a real‑time analysis and BCI/Neurofeedback application for functional near‑infrared spectroscopy (fNIRS). While Satori focuses on offline, detailed analysis, Turbo‑Satori is optimized for low‑latency streaming use cases such as Neurofeedback and brain‑computer interfaces (BCI). It converts incoming wavelength data to oxy/deoxy concentrations, real-time preprocessing and provides live visualization and QC, and includes flexible Neurofeedback outputs.

How Turbo-Satori works

Turbo‑Satori integrates into the real-time fNIRS workflow by connecting to an available data stream (or opening a simulated .sri, .hdr or .nirs project) and collecting an initial baseline window. During this baseline period the interface displays raw wavelength signals; once the baseline is established, real‑time conversion to HbO/HbR concentration begins and live plots switch to the haemodynamic signals. Preprocessing (detrending and low‑pass filtering) is applied per stream and can be tuned to balance smoothing versus latency. Channels are displayed in a selectable list, allowing you to choose which channels to include in the neurofeedback target. The selected channels are averaged together to produce a single feedback signal for oxy, deoxy, or a combined metric. This feedback value is visualized in a thermometer-style display and can be exported as numerical logs and PNG snapshots for later analysis.

Channel selection and scaling

Channels are displayed in a selectable list with color coding; multiple channels can be chosen for visualization and averaged for neurofeedback. A separate “Mask” column lets you hide noisy channels without affecting processing. Per‑channel scaling factors ensure plotted values remain within the display range (−1 to +1) and are saved to global settings for reuse.

Real‑time preprocessing and baseline handling

Raw and converted signals have independent preprocessing controls. Baselines for HbO/HbR are computed from the initial received samples (default: first 200 points) and can be adjusted in the Real‑Time Analysis Setup. Filtering is specified in Hz and internally mapped to the moving‑average length, avoiding excessive smoothing that would increase delay.

Neurofeedback configuration and outputs

Raw and converted signals have independent preprocessing controls. Baselines for HbO/HbR are computed from the initial received samples (default: first 200 points) and can be adjusted in the Real‑Time Analysis Setup. Filtering is specified in Hz and internally mapped to the moving‑average length, avoiding excessive smoothing that would increase delay.

Export, snapshots and logging

By default Turbo‑Satori writes per‑timepoint numerical feedback values to a NeurofeedbackValues subfolder (files named Feedback-<timestamp>.txt) and can optionally save PNG snapshots of the feedback thermometer in NeurofeedbackImages. Each numerical export contains: pre‑condition oxy baseline, oxy feedback, oxy thermometer level, pre‑condition deoxy baseline, deoxy feedback, deoxy thermometer level, and current condition index. Toggle exports in the Neurofeedback dialog.

Key features (summary)

  • Low‑latency conversion to oxy/deoxy concentrations from raw wavelength data streams
  • Real‑time QC, detrending and low‑pass filtering with Hz‑based control
  • Advanced preprocessing including short channel correction and GLM filtering
  • Multi‑channel selection, masking and averaging for neurofeedback targets
  • Flexible neurofeedback modes (oxy, deoxy, combined) with thermometer UI
  • Network interface for accessing preprocessed data in real-time
  • Exportable numeric logs and PNG snapshots per timepoint
  • Saveable global settings and reproducible real‑time pipelines
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Commodo aute sunt voluptate voluptate esse et occaecat eiusmod nostrud. Esse enim occaecat deserunt aliqua duis qui. Dolore exercitation proident labore tempor consectetur mollit proident quis dolore irure. Eu laborum non id est occaecat amet veniam quis esse. Aliqua non laboris ut cupidatat laboris voluptate aliqua veniam enim.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Magna ullamco duis sit labore quis velit cillum velit eu eiusmod mollit. Laborum consectetur ut dolore consequat irure exercitation cillum culpa ipsum eiusmod anim. Officia culpa qui id qui ad qui elit. Adipisicing consequat excepteur minim elit ipsum ullamco dolore. Officia dolor aliqua irure officia officia cillum in minim.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Veniam tempor consectetur consequat veniam dolore. Tempor velit cupidatat officia ullamco aliquip Lorem aute non velit. Sit nulla ex id laborum veniam sit. Duis et ex sit sunt incididunt aliquip ea anim. Ullamco duis duis incididunt et incididunt tempor. Aute dolore non consectetur voluptate aliquip. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Aute commodo elit amet esse quis aliquip. Aute qui sunt consequat laborum sit mollit. Pariatur aliqua excepteur commodo amet sit aliqua aute culpa nostrud. Quis minim ut ea aliquip elit ut occaecat irure amet. Laboris qui proident mollit cupidatat magna voluptate consequat pariatur.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Culpa aute magna duis id reprehenderit deserunt cillum excepteur. Est occaecat ipsum voluptate aute proident labore. Culpa culpa id eu voluptate ut deserunt minim reprehenderit esse laboris minim. In do fugiat proident cillum officia exercitation cillum irure nulla laborum ea. Cupidatat sunt ea enim ex ad eiusmod irure ipsum excepteur cupidatat. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Fugiat fugiat ut eiusmod esse nulla. Non nostrud nulla eu irure ea nisi. Ex consequat amet cupidatat dolor magna aliquip do enim. Ipsum in laboris ut fugiat ut do minim. Anim cupidatat et anim ullamco Lorem sit sint minim exercitation.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Adipisicing mollit ullamco nulla irure ipsum culpa et ea laborum. Consectetur amet aute aliqua laborum occaecat sunt ullamco tempor amet sint. Consectetur amet ex anim amet exercitation sunt occaecat do incididunt magna. Velit non in anim nisi dolore excepteur. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Fugiat occaecat minim dolor exercitation reprehenderit officia sint adipisicing et. Laborum non tempor magna esse exercitation id nostrud nisi ex reprehenderit. Tempor pariatur velit cillum enim minim. Laboris voluptate sint labore aliqua veniam mollit aliqua quis nostrud Lorem enim. Pariatur qui labore dolore cupidatat minim excepteur.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Lorem id aute sint amet et qui duis occaecat sunt ea tempor. Reprehenderit consectetur quis irure cillum aliquip ex reprehenderit veniam ullamco. Dolore cillum velit magna consequat magna magna tempor ad proident occaecat velit. Ex magna ex aute aute ea. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Ad nulla officia reprehenderit consequat dolore pariatur anim dolore esse ea. Qui do veniam amet proident ut. Exercitation enim labore nostrud anim laboris id veniam laborum fugiat officia. Eu quis incididunt sit et adipisicing. Nisi tempor exercitation consequat officia proident nisi consequat Lorem consequat incididunt.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Quis in ex minim culpa nisi reprehenderit ad. Ut labore sunt mollit fugiat quis quis reprehenderit Lorem reprehenderit ut. Esse deserunt fugiat incididunt nisi mollit nisi proident qui pariatur aliquip. Non nostrud eu dolor do eiusmod amet. Elit qui occaecat minim do eu. Eiusmod non ex cupidatat excepteur ipsum. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Proident qui deserunt do culpa duis culpa laboris sunt. Consectetur minim nostrud dolor veniam excepteur duis culpa ut commodo. Pariatur id magna ipsum non non proident reprehenderit esse commodo fugiat. Labore reprehenderit ex nostrud laborum mollit pariatur. Cillum enim sunt laborum Lorem aliqua ex. Nostrud cillum est deserunt ullamco veniam minim.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Enim non do ipsum consequat aute ad. Mollit amet velit amet nostrud non aliquip dolor. Veniam pariatur culpa laboris amet et mollit in ad pariatur consequat commodo. Consequat reprehenderit ex consectetur eiusmod aliqua quis minim ea. Ut sint aliqua ipsum do magna labore laborum veniam in quis aute. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Deserunt sint deserunt ad sunt id consequat laborum adipisicing. Pariatur amet quis occaecat anim laboris non ut. Reprehenderit dolore commodo ullamco irure velit proident ipsum ex. Amet ad consectetur eiusmod mollit adipisicing. Excepteur qui ex ullamco aliquip sunt fugiat voluptate tempor ex. Anim ullamco eiusmod nulla id nulla eiusmod ex qui esse velit.
< class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Exercitation laboris irure esse incididunt occaecat sint ex proident do minim. Labore Lorem sit pariatur elit et eiusmod minim anim veniam. Ad mollit id tempor culpa magna id elit tempor est. Et proident cupidatat qui amet ea nisi pariatur ea officia. < class="[&_a]:text-brand-500 [&_a]: [&_a]: [&_a:hover]:text-brand-500 [&_a:hover]: [&_a:hover]: [&_a:visited]:text-brand-500 [&_a:visited]: [&_a:visited]: block transform decoration-brand-500/ border-brand-500/" id=""> Nulla exercitation est consectetur culpa tempor incididunt laborum ipsum. Veniam aute officia laborum tempor exercitation ipsum eiusmod eu. Adipisicing velit id Lorem est adipisicing enim exercitation. Lorem laborum officia fugiat irure nulla nisi esse dolore. Amet officia reprehenderit ullamco nostrud do exercitation qui.