Skip to content

Releases: xdf-modules/pyxdf

v1.17.5

Choose a tag to compare

@cbrnr cbrnr released this 15 Jun 15:25
d1ba66c

This release speeds up loading of large streams. It also fixes an issue with playing back a file where no metadata is available in the to-be-streamed XDF file.

v1.17.4

Choose a tag to compare

@cbrnr cbrnr released this 25 Mar 16:22
e74d153

This release contains two important bug fixes:

  1. Skip linear dejittering for streams flagged with can_drop_samples to prevent dropped-frame streams from being shifted too early in time
  2. Fix detection of clock sync corruption in additional cases

v1.17.3

Choose a tag to compare

@cbrnr cbrnr released this 20 Jan 14:34
9bccae8

This is a bug-fix release that adjusts the handling of certain anomalous XDF files introduced in v1.17.2, eliminating spurious warnings and unintended behavior.

v1.17.2

Choose a tag to compare

@cbrnr cbrnr released this 07 Jan 14:45
86794ed

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_streaminfos function has gained a case_sensitive parameter (which defaults to True to maintain previous behavior). If case_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

Choose a tag to compare

@cbrnr cbrnr released this 13 Oct 09:51
1ef0ad9

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"].

⚠️ YANKED: This release was yanked from PyPI on 2025-10-27 due to a severe regression regarding effective sampling frequency and clock segments calculation. Please use version v1.17.0 or v1.17.2 or later (when available) instead.

v1.17.0

Choose a tag to compare

@cbrnr cbrnr released this 07 Jan 12:13
84be818

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.

v1.16.8

Choose a tag to compare

@cbrnr cbrnr released this 18 Jul 07:18
037d1da

This bugfix release resolves an issue on big-endian machines.

v1.16.7

Choose a tag to compare

@cbrnr cbrnr released this 17 Jul 14:31
7a94b19

In this release, we added clock_times and clock_values to the stream dictionary.

v1.16.6

Choose a tag to compare

@cbrnr cbrnr released this 18 Apr 07:35
0e7f623

Bump minimum required Python version to 3.9.

v1.16.5

Choose a tag to compare

@cbrnr cbrnr released this 12 Jan 07:27
c48301d

This release adds support for Python 3.12.