neuromore Studio
What changed since 1.7.3
Warning: retune your protocols when you move from 1.7.3 to 1.8.2. The signal processing changed, so the same signal can produce different values. This affects band values, spectra, Variance, Median, RR50, pRR50, pRR20, high-pass filter output and the Threshold node’s Outside Range functions. Thresholds and ranges tuned on 1.7.3 may no longer fit.
Which version you have
Section titled “Which version you have”Versions 1.7.4 to 1.8.2 were not publicly released, so this page compares 1.7.3 directly with 1.8.2. To see your version, open Help > About.
Community builds are published on GitHub releases. The latest public release is 1.7.3, with packages for Windows, macOS and Ubuntu. You can also build from source. The public source does not yet include every 1.8.2 change.
Commercial clients get builds in a different way, usually a custom build arranged with neuromore. Contact neuromore.
Move a protocol to 1.8.2
Section titled “Move a protocol to 1.8.2”- Before you update, keep a copy of each classifier. In 1.7.3, right-click the classifier in the Back-End File System window and choose Save To HDD.
- Install your 1.8.2 build and sign in. Right-click the classifier in the Back-End File System window and choose Open. Do the remaining steps in 1.8.2.
- Check every IIR/FIR Filter node with Filter Type set to Highpass. Set High Cut Frequency to the cutoff you want. 1.7.3 ignores this value (see Signal processing), so the cutoff can move even if you change nothing.
- Open each FFT node and look at FFT Order and Window Function. A saved classifier keeps its stored values, so a node saved with the 1.7.3 default stays at order 7, while new FFT nodes use order 9. Choose the order you want. A higher order gives narrower bins and a longer wait for the first spectrum. See Signal processing. Band and spectrum values shift either way, because the window function now takes effect and the mean removal and new scaling apply. You retune them in step 8.
- Check any Threshold node with Use Range on and an Outside Range function. In 1.7.3 it did not act as outside: by default it passed inside the range. In 1.8.2 it passes outside the range, so its output can invert. Check that this is what you want.
- If you use OpenBCI Cyton with Daisy, update any channel selection that uses the old channel names. See Devices.
- Open NMStudio > Settings > Devices > Drift Correction > Enable Drift Correction and choose the setting you want. An install upgraded from 1.7.3 can keep this on, while a new 1.8.2 install has it off. Use the same setting on every machine that runs the protocol.
- Run the protocol and set its fixed values again: Threshold levels, Remap ranges, and anything else tuned from 1.7.3 numbers.
Signal processing
Section titled “Signal processing”These rows change the values a protocol produces. See Nodes for each node.
| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| FFT Window Function | Applied to the input. | Has no effect on the output. |
| FFT mean removal | The mean of each input window is subtracted before the window function is applied. The FFT node has no setting for this. | Not subtracted. |
| FFT scaling | Divided by FFT size and window gain. Interior bins are doubled. The 0 Hz and highest bins are not. | Older formula with no window gain. The highest bin is doubled. |
| Default FFT Order | 9 (512 samples), for new FFT nodes and spectrum analyzers. | 7 (128 samples). |
| Time to first spectrum, at 250 Hz with default order and no zero padding | About 2 s, with bins about 0.49 Hz wide. | About 0.5 s, with bins about 1.95 Hz wide. |
| Spectrum analyzer default window | Hann. | The window setting has no effect. |
| Band edges | Rounded to the nearest bin. | Truncated to the lower bin. |
| Frequency Band node, Average Phase | The spectrum now holds magnitudes only. Check the output before you rely on this value. | Calculated from complex bins. |
| Decibel value of an empty bin | -120. | Not limited. |
| IIR/FIR Filter, Highpass | The cutoff is High Cut Frequency, the value the node shows. | The cutoff is Low Cut Frequency, which the node hides for this filter type. High Cut Frequency has no effect. To see the value in use, switch Filter Type to Lowpass, then switch back. |
| Biquad Filter stability | Checks the filter coefficients. The output counts as diverged above 1E12. | The limit is 10E6. |
| Variance | Divides by n-1, so any value derived from it shifts too. The shift is largest on short windows. | Divides by n. |
| Median and Percentile | Interpolate linearly between neighbouring values. | Pick one value with no interpolation. |
| Statistics node, Product | Multiplies the values. | Always returns 0. Channel Math’s Product is correct in both versions. |
| RR50, pRR50, pRR20 | Count differences in both directions. | Count one direction only, so values are lower or equal. |
| Threshold, Outside Range | Passes when the value is outside the range. | The selected range function isn’t reliably applied, because the code reads the hidden single-threshold Compare Function instead. With the default Compare Function (Greater than), Outside Range acts as Within Range (inclusive). If that hidden function is Less than or Grt. or Equal, it never passes for a valid range. |
| Sample rate errors | A node that shows “Input must have a valid sample rate.” or “Input sample rates are incompatible.” produces no output. | The node shows the same error but keeps running. The Operation node stops, as in 1.8.2. |
| Math nodes | An invalid Math1 result becomes 0. Math2 pow with a negative base and fractional exponent returns 0. The Smooth Step Poly formula is corrected. | Invalid results pass through. The Smooth Step Poly formula differs. |
| Drift Correction | Off by default. A value saved by an earlier install stays in use, so an install upgraded from 1.7.3 can stay on. | On by default, and Studio saves the value in its settings file. |
Sessions
Section titled “Sessions”Pausing changed the most. See Running a session.
| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| Session timer | Stops during a pause. | Stops during a pause. |
| Session Time node (deprecated, but saved classifiers can still contain it) | Repeats the time the pause started at. | Keeps counting. |
| State machine | Stops during a pause. | Keeps running. |
| Playing audio and video | Hold their position, then resume. | Keep playing. |
| Points, Integral, statistics, Auto Threshold | Hold during a pause. | Keep changing. |
| Experience window | Shows a dimmed “PAUSED” overlay. | No overlay. |
| Views and feedback | Keep updating during a pause. | Keep updating during a pause. |
| Recording | No code stops it during a pause. | No code stops it during a pause. |
Windows
Section titled “Windows”| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| 2D Spectrogram settings | Nine: Multi View, Show 0Hz Bin, Average Interval, Horizontal View, Auto Scale, Max Amplitude, High-Pass (Hz), Notch 50 Hz, Notch 60 Hz. | Three: Multi View, Show 0Hz Bin, Average Interval. |
| 2D Spectrogram layout | Horizontal View is on by default: two columns of horizontal bars. | Vertical charts. |
| 2D Spectrogram display filters | A 0.75 Hz high-pass and both notches are on by default. They change the display only, not what a classifier receives. | None. |
| 2D Spectrogram channels | The checkboxes follow a Select Channels node with Quick Config on in the active classifier. | The checkboxes are independent. |
| Impedance, reading below 0.1 kOhm | Excellent, shown green with its value. | No Signal, shown grey. |
| Impedance, channel with no samples for 2 seconds | No Signal, with a blank value. Left out of the minimum, average and maximum. | Can keep its colour and still count. |
| Impedance, kOhm values | Shown only for devices that measure impedance: OpenBCI, BrainMaster, Mitsar, eemagine. Other devices keep their colours with blank values. | No such check. |
| Login window | Shows the server address in small grey text. | No server address. |
| Windows display | Icons, fonts and widgets are smaller at the base level, and text scales with display DPI. Screenshots on these pages can differ. | Larger at the base level. |
Editing protocols
Section titled “Editing protocols”See Classifier tutorial.
| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| Copy and paste | Several nodes at once, with the connections between them. Works in classifiers and state machines, and across graphs of the same type. Paste adds new nodes, even when a node of the same type is selected. The selected node doesn’t change. | Paste adds no nodes. With one node copied and one node of the same type selected, it copies the settings and name onto the selected node. |
| Cut | Works (Ctrl+X). | Does nothing. |
| Right-click menu | Includes Copy and Paste. | Not included. |
| Output nodes, Output Name | Adds Use Custom Name, with a Custom Name text field. | Use Node Name or Use Channel Name only. |
| View node | Adds Fixed Length in mins and a Length in mins input. The Enable input updates the Signal View while running. | No fixed length. The Enable input does not update the Signal View while running. |
| Graph files | Files over 100 MB are refused. | No size limit. |
Files and experiences
Section titled “Files and experiences”| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| Back-End File System, file entries | Download and Upload. | Save To HDD and Upload local file to cloud. |
| Back-End File System, folders | Folders have Download and Upload too. | Files only. |
| Experience Selection window | Hides root folders with “staging” in the name. | Lists them. |
| Experience wizard | Adds a Channel display names group, shown when feedback node names contain “Channel N” or “Ch N”. Adds classifier parameter controls. | Neither. |
Devices
Section titled “Devices”See Biosensors and Devices.
| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| OpenBCI Cyton with Daisy, channel names | 1 to 16. | P3, P4, Oz, Fz, T5, T6, F3, F4, T3, T4, C3, C4, Cz, O1, O2, Pz. |
| OpenBCI Cyton with Daisy, timeout without data | 60 seconds. | 5 seconds. |
| OpenBCI autodetection | Skips ports already used by a connected device. | Does not skip them. |
Install and local files
Section titled “Install and local files”See Installation and Local files and troubleshooting.
| Topic | In 1.8.2 | In 1.7.3 |
|---|---|---|
| Package names | NMStudio-1.8.2-... |
Studio-1.7.3-... |
| macOS package | .dmg. |
.pkg. |
| Ubuntu packages | Built on 22.04. | 20.04 and 22.04. |
| Windows executable | NMStudio.exe. |
Studio.exe. |
| Log file | A new file on each start: Logs/ in the data folder. |
One file, NMStudio_Log.txt, overwritten on each start. |
| Engine CLI | A separate source target, not in release packages. See Engine library and source builds. | Does not exist. |
What stays the same
Section titled “What stays the same”The code shows no change that affects these:
- The WebSocket interface and its default port.
- OSC ports.
- The devices compiled into community builds. See Editions and licensing.
- The list of nodes and windows.
- BrainFlow support.
- The visualizations.