Version 1.4.0🔗
Fix handling of warnings through the logger (#243 by Mathieu Scheltienne)
Fix handling of CLI arguments through
PlayerLSLentry-point (#246, #267 by Mathieu Scheltienne)Change default download directory for the datasets from
~/mne_data/MNE-LSLto~/mne_data/MNE-LSL-datato match other MNE datasets (#256 by Mathieu Scheltienne)Add example for a simple QRS R-peak detector (#256 by Mathieu Scheltienne)
Add example for real-time rolling windows bandpower estimation (#279 by Mathieu Scheltienne)
Fix push operation by a
PlayerLSLwith achunk_sizeset to 1 to usemne_lsl.lsl.StreamOutlet.push_sample()instead ofmne_lsl.lsl.StreamOutlet.push_chunk()(#257 by Mathieu Scheltienne)Add example of
PlayerLSLrun in a child process (#267 by Mathieu Scheltienne)Fix error in pushing the last chunk of a non infinite
PlayerLSLstream withchunk_size=1(#268 by Mathieu Scheltienne)Add method
acquire()to manually acquire new samples in the buffer (#282 by Mathieu Scheltienne)
API changes🔗
The
PlayerLSLdefaultchunk_sizeis now set to 10 instead of 64 samples (#264 by Mathieu Scheltienne)The
PlayerandStreamobjects now use aconcurrent.futures.ThreadPoolExecutorinstead of single-use threads (#264 by Mathieu Scheltienne)Improve the y-scaling on the legacy
Viewerby (1) adding newy_scalevalues in the dropdown list in power of 10s and (2) adding mouse wheel scrolling base zoom in/out on the main plot window (#264275 by Mathieu Scheltienne)In
PlayerLSLandStreamLSL, instantiation now uses keyword-only arguments for arguments specific to LSL (#282 by Mathieu Scheltienne)
Infrastructure🔗
Improve unit tests by (1) using a
chunk_sizeof 200 samples in players, (2) running players in a separate process, (3) ensuring concurrent threads are not limited by one thread hogging the limited CI resources (#264 by Mathieu Scheltienne)