Recent Releases of MNE-LSL

MNE-LSL - 1.10.1

  • Release for JOSS publication and archiving

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.10.0...1.10.1

Scientific Software - Peer-reviewed - Python
Published by mscheltienne 7 months ago

MNE-LSL - 1.10.0

What's Changed

  • Minor documentation fixes by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/415
  • Build and test aarch64 natively by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/416
  • Add support for callback(s) by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/419
  • Update stub files by @github-actions[bot] in https://github.com/mne-tools/mne-lsl/pull/423
  • Add support for stream hashing and usage as dictionary keys by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/424
  • Update documentation of the pylsl differences by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/427
  • ADD keyword, FIX install command by @teonbrooks in https://github.com/mne-tools/mne-lsl/pull/433
  • Pin liblsl build to VS2019 toolset and update Windows install instructions by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/440
  • Fix bug where epoch with too small buffer could fail due to the event shape by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/447
  • Add support for event_id in irregularly sampled event stream by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/455

New Contributors

  • @teonbrooks made their first contribution in https://github.com/mne-tools/mne-lsl/pull/433

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.9.0...1.10

Scientific Software - Peer-reviewed - Python
Published by mscheltienne 7 months ago

MNE-LSL - 1.9.0

What's Changed

  • Add autofix.ci to run stub file generation on pull request by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/376
  • Fix intersphinx link in tutorial by @tsbinns in https://github.com/mne-tools/mne-lsl/pull/388 and https://github.com/mne-tools/mne-lsl/pull/389
  • Fix documentation of player LSL first argument by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/391
  • Fix source code links in documentation by @myd7349 in https://github.com/mne-tools/mne-lsl/pull/398
  • Fix for annotation with no duration by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/399

New Contributors

  • @tsbinns made their first contribution in https://github.com/mne-tools/mne-lsl/pull/388
  • @myd7349 made their first contribution in https://github.com/mne-tools/mne-lsl/pull/398

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.8.0...1.9.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne 12 months ago

MNE-LSL - 1.8.0

What's Changed

  • Improve test stability by explicitly disconnecting stream_events by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/370
  • Don't use public get_data method in epoch acquisition to avoid resetting the number of new samples by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/371
  • Deprecate acquisition_delay=0 in favor of None by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/372

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.7.0...1.8.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne about 1 year ago

MNE-LSL - 1.7.1

  • Fix loading of liblsl from environment variable by @mscheltienne in #363

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.7.0...1.7.1

Scientific Software - Peer-reviewed - Python
Published by mscheltienne about 1 year ago

MNE-LSL - 1.7.0

What's Changed

  • Bundle liblsl together with mne-lsl in wheels by @larsoner and @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/351
  • Drop support for python 3.9 by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/343

MNE-LSL now includes ABI3 compatible wheels with liblsl for the tags: - macOS 11+: macosx_11_0_x86_64 -- macosx_11_0_arm64 - Linux: manylinux_2_17_x86_64 -- manylinux2014_x86_64 -- manylinux_2_17_aarch64 -- manylinux2014_aarch64 - Windows: win_amd64

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.6.0...1.7.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 1 year ago

MNE-LSL - 1.6.1

  • Safer parsing of channel names in the legacy stream viewer, ensuring that incomplete metadata in the StreamInfo should be correctly parsed in the correct number of channels.

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.6.0...1.6.1

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 1 year ago

MNE-LSL - 1.6.0

What's Changed

  • Improve coverage and improve disconnection of epochs by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/317
  • Fix sample and testing datasets path by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/319
  • Drop isort and pydocstyle in favor of ruff and pin to 0.6.0 and above by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/321
  • Get rid of qt5 entirely in optional requirements by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/326
  • add mailmap and enforce sorting of it by @drammock in https://github.com/mne-tools/mne-lsl/pull/327
  • Draft JOSS paper and add PDF generation gh-action by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/316
  • Fix negative start index when looping around dataset by @toni-neurosc in https://github.com/mne-tools/mne-lsl/pull/330
  • Add contributing guide by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/332

New Contributors

  • @drammock made their first contribution in https://github.com/mne-tools/mne-lsl/pull/327
  • @toni-neurosc made their first contribution in https://github.com/mne-tools/mne-lsl/pull/330

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.5.0...1.6.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 1 year ago

MNE-LSL - 1.5.0

What's Changed

  • Use property nnewsamples in detector examlpe by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/288
  • Add EpochsStream for epoching real-time stream on-the-fly by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/258
  • Add tutorial about epochs and expose base stream class by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/302
  • CI: Fix retry action by @larsoner in https://github.com/mne-tools/mne-lsl/pull/306
  • Make unit tests more robust and add tutorial for Player with annotations by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/305
  • Improve peak detection example using chunk size 1 by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/308
  • Add documentation about processing steps by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/309
  • Add real-time decoding example by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/312

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.4.0...1.5.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 1 year ago

MNE-LSL - 1.4.0

What's Changed

  • Improve warning handling by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/243
  • Fix CLI entry-point for Player by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/246
  • Fix push operation with a player having chunk_size set to 1 by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/257
  • Add example for a real-time peak detector applied to cardiac R-peak by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/256
  • Replace single-use thread operation with a ThreadPoolExecutor by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/264
  • Add example of player run in child process by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/267
  • Fix pushing the last chunk of a finite mock stream with chunk size of 1 by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/268
  • Fix flaky test by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/270
  • Improve CIs, example and code coverage by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/273
  • Improve legacy viewer scaling by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/275
  • Add example for bandpower on rolling window by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/279
  • Try to fix segfault in CIs during inlet/outlet deletion/destruction by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/277
  • Add manual acquisition method by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/282

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.3.1...1.4.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 1 year ago

MNE-LSL - 1.3.1

  • Improve handling of warnings throughout the codebase to improve the feedback received by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/243

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.3.0...1.3.1

Scientific Software - Peer-reviewed - Python
Published by mscheltienne almost 2 years ago

MNE-LSL - 1.3.0

What's Changed

  • Add IIR filters to a Stream object through the methods Stream.filter and Stream.notch_filter by @mscheltienne and @larsoner in https://github.com/mne-tools/mne-lsl/pull/218 and https://github.com/mne-tools/mne-lsl/pull/226
  • Improve logging and level handling by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/219
  • Add 'n_repeat' argument to Player by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/223
  • Improve documentation of performance differences between pylsl and mne.lsl by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/231

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.2.0...1.3.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne almost 2 years ago

MNE-LSL - 1.2.0

  • Implement MNE's design philosophy by returning self in methods modifying a StreamLSL -> enables method chaining stream.pick("eeg").set_eeg_reference("average")
  • Add argument annotations to PlayerLSL to stream annotations on a separate irregularly sampled stream
  • Add support for loaded Raw objects as input to a PlayerLSL
  • Improve deletion or low-level resources
  • Improve discovery and download of existing liblsl on the system
  • Fix reading of yRange through settings in legacy StreamViewer

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.1.1...1.2.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne about 2 years ago

MNE-LSL - 1.1.1

  • Fix parsing of incomplete StreamInfo into an mne.Info object by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/179
  • Remove pytest related files from the distribution by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/180

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.1.0...1.1.1

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 2 years ago

MNE-LSL - 1.1.0

What's Changed

  • Remove legacy setup.py by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/167
  • Improve documentation workflow by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/170
  • Add support for 'timestamp' array in a push operation by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/172
  • Add local sphinx-remove-toctrees extension by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/173
  • Improve type-hints by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/175
  • MAINT: Make tests less flaky by @larsoner in https://github.com/mne-tools/mne-lsl/pull/168
  • Improve test coverage on load-liblsl and on datasets by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/176
  • Improve test coverage, structure and checks for strean connection in properties by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/177
  • Match argument order between BasePlayer and PlayerLSL by @mscheltienne in https://github.com/mne-tools/mne-lsl/pull/178

New Contributors

  • @larsoner made their first contribution in https://github.com/mne-tools/mne-lsl/pull/168

Full Changelog: https://github.com/mne-tools/mne-lsl/compare/1.0.0...1.1.0

Please report encountered issues on the tracker.

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 2 years ago

MNE-LSL - 1.0.0

Initial release of mne-lsl for Python 3.9 to 3.12. MNE-LSL integrates tightly LSL streams with MNE-Python. It replaces the LSLClient in mne_realtime with 2 main objects:

  • mne_lsl.stream.StreamLSL: connects to an LSL stream and acts as a Raw object which underlying data array is a ringbuffer continuously updated.
  • mne_lsl.player.PlayerLSL: create a fake LSL stream from any MNE-readable file.

player = mne_lsl.player.PlayerLSL(...) player.start() stream = mne_lsl.stream.StreamLSL(...) stream.connect() stream.pick("eeg") stream.set_eeg_reference("average") data, ts = stream.get_data() stream.disconnect() player.stop()

Additionally, the low-level mne_lsl.lsl module re-implements a faster version of pylsl with convenience methods to set and retrieve metadata, for instance from an mne.Info object.

sinfo = mne_lsl.lsl.StreamInfo(...) sinfo.set_channel_info(info) info = sinfo.get_channel_info()

Please report encountered issues on the tracker.

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 2 years ago

MNE-LSL - 0.6.4

Fix creation of ParallelPortTrigger with an hexadecimal address on Windows.

Full Changelog: https://github.com/fcbg-hnp-meeg/bsl/compare/0.6.3...0.6.4

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 2 years ago

MNE-LSL - 0.6.3

  • Limit bsl.triggers.LSLTrigger to [1, 127] values while keeping other triggers between [1, 255].

Full Changelog: https://github.com/fcbg-hnp-meeg/bsl/compare/0.6.2...0.6.3

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 2 years ago

MNE-LSL - 0.6.2

  • Fix bsl.lsl.LSLTrigger which failed to convert the trigger value to a np.int8 array of size 1.

Full Changelog: https://github.com/fcbg-hnp-meeg/bsl/compare/0.6.1...0.6.2

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 2 years ago

MNE-LSL - 0.6.1

  • Fix handling of processing flags in a bsl.lsl.StreamInlet
  • bsl.lsl.StreamInlet.pull_sample now returns an empty list or array if no sample is available instead of None

Full Changelog: https://github.com/fcbg-hnp-meeg/bsl/compare/0.6.0...0.6.1

Scientific Software - Peer-reviewed - Python
Published by mscheltienne almost 3 years ago

MNE-LSL - 0.6.0

What's Changed

This release includes a new python LSL binding, bsl.lsl, replacing pylsl. This binding is optimized for numerical types. Pull operations on a StreamInlet now return a numpy array in constant time O(1) instead of a list (or list of list) in linear time O(n). Example: 65 channels, 2048 samples chunks (1 seconds @ 2048 Hz or 2 seconds @ 1024 Hz), in double precision (float64) - pylsl: 7.87 ms ± 58 µs per pullchunk - bsl.lsl: 4.35 µs ± 134 ns per pullchunk

This is the first release using the new python binding. It also deprecates the StreamReceiver, StreamPlayer and StreamRecorder API which will be replaced in the next versions.

Full Changelog: https://github.com/fcbg-hnp-meeg/bsl/compare/0.5.0...0.6.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne almost 3 years ago

MNE-LSL - 0.5.2

Bugfix:

  • Cast downsampling to integer for the pyqtgraph backend of the StreamViewer

Scientific Software - Peer-reviewed - Python
Published by mscheltienne about 3 years ago

MNE-LSL - 0.5.1

  • Add support for stream type signal used by OpenViBE servers to the StreamReceiver

Full Changelog: https://github.com/bsl-tools/bsl/compare/0.5.0...0.5.1


This is the last release with the legacy API: StreamPlayer, StreamReceiver, StreamRecorder. The next release will be backward incompatible. It will: - replace pylsl with a new lsl module, dropping support for old versions of python and liblsl while improving greatly the performance, especially to pull chunks of data from the network - replace the StreamPlayer with a Player API - replace the StreamReceiver with a Stream API, with similar methods to an MNE object - replace the StreamRecorder with a Recorder API, writing to disk as soon as the data is received

Please pin the version to bsl < 0.6.0 if you need to retain the legacy API.

Scientific Software - Peer-reviewed - Python
Published by mscheltienne about 3 years ago

MNE-LSL - 0.5.0

What's Changed

  • Add black formatting and isort by @mscheltienne in https://github.com/bsl-tools/bsl/pull/61
  • [MNT] Move package configuration and dependencies to pyproject.toml by @mscheltienne in https://github.com/bsl-tools/bsl/pull/62
  • Bump liblsl, pylsl and psychopy versions in externals by @mscheltienne in https://github.com/bsl-tools/bsl/pull/63
  • Add LSLTrigger for triggers on an LSL outlet by @mscheltienne in https://github.com/bsl-tools/bsl/pull/64
  • Better handling of trigger metaclass by @mscheltienne in https://github.com/bsl-tools/bsl/pull/65

Full Changelog: https://github.com/bsl-tools/bsl/compare/0.4.0...0.5.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 3 years ago

MNE-LSL - 0.4.0

  • Fix the recorder button on the StreamViewer.
  • Improves the documentation, the crosslinks in the documentation and the examples.
  • Reworks the trigger module.
  • Package a version of pylsl and liblsl with BSL as a backup
  • Improves CIs workflows
  • Improves testing

Scientific Software - Peer-reviewed - Python
Published by mscheltienne almost 4 years ago

MNE-LSL - 0.3.1

fix readme with new API syntax for player and recorder.

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 4 years ago

MNE-LSL - 0.3.0

  • Improve API for StreamPlayer, StreamRecorder, StreamReceiver.
  • Improve documentation.
  • Improve examples.

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 4 years ago

MNE-LSL - 0.2.1

Fix bug for python v3.6.x and v3.7.x.

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 4 years ago

MNE-LSL - 0.2.0

Scientific Software - Peer-reviewed - Python
Published by mscheltienne over 4 years ago