Releases: xdf-modules/pyxdf
v1.17.3
v1.17.2
This release contains all contributions from the yanked v1.17.1 release (and of course a fix for the regression that was shipped in v1.17.1) plus additional new features, changes, and fixes. In more detail, here's what's new:
- The
match_streaminfosfunction has gained acase_sensitiveparameter (which defaults toTrueto maintain previous behavior). Ifcase_sensitive=False, stream properties are matched more leniently. - Detected clock segments (used in synchronization) are now exposed as
stream["info"]["clock_segments"]. - Dejittering now also segments at negative time intervals by considering the absolute time difference. This improves the process and yields better results for many real-world files.
This release also fixes several major bugs, including:
- The effective sample rate is now consistently calculated as
(len(time_stamps) - 1) / duration. - File playback works again when not looping.
- A clock synchronization issue that could result in severely incorrect timestamps when an outlet closed before the inlet has been fixed. Although this is an upstream LSL issue which will hopefully be resolved soon, we have implemented a fix to correctly read existing affected files.
As always, please refer to our CHANGELOG.md for a more detailed list of changes.
⚠️ [YANKED] v1.17.1
This release contains several bug fixes and improvements related to synchronization, calculating the effective sampling rate, and initializing emtpy streams. We've also included new features: first, match_streaminfos gained a case_sensitive parameter (defaulting to False to maintain previous behavior), and second, detected clock segments are now exposed as stream["info"]["clock_segments"].
v1.17.0
This release exposes auto-detected continuous segments in a stream with interruptions as stream["info"]["segments"]. We've also renamed the pyxdf.examples module to pyxdf.cli, and pyxdf.cli.playback_lsl.py will only loop playback when passing the --loop argument.