LSL timestamps jump in EEG hyperscanning set-up

Open
#134 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp, python

Research direction

Start with the described two-LiveAmp/LabRecorder setup and pyxdf.load_xdf(), then inspect the two EEG time_stamps arrays around a reported 10–20 second jump. Done means reproducing the discontinuity and documenting its cause or a concrete solution; the issue names no repository files or tests.

Written by the indexing model from the issue text.

Description

Hello,

I am conducting an EEG hyperscanning experiment, my set-up is as follows :

  • 2 LiveAmps, recording 32 channels each, at 500Hz
  • Robotic set-up including a master computer using C++ LSL library to send markers of events to recording computer by ethernet
  • Recording computer with LSL LabRecorder which records (2 EEG streams + 1 event marker stream) into .xdf file

My offline data processing involves pyxdf to load the .xdf files, in particular .load_xdf() method with no specific options.

I compute the drift between the two EEG streams by looking at the difference EEG1['time_stamps']-EEG2['time_stamps'] across sample indices. I believe each value of EEG1['time_stamps'] or EEG2['time_stamps'] corresponds to timestamps of the LSL clock.

My problem is that for certain recordings, one of the EEG streams' timestamps have a big jump (10 to 20 seconds) at random moments. (See picture) This issue does not seam to affect the data, meaning EEG signals seem to remain continuously recorded. They do not seem to affect the event marker stream either. However, a chunk of data corresponding to the duration of the jump is missing at the end of the affected EEG stream.

Image

I am not sure why this occurs, maybe this is due to LSL-clocks resetting during the recording. I have observed this type of timestamp jump in 5 out of 96 recordings for now, but I am planning to collect more data and would like to know if there is an explanation/solution to this issue. I perform synchrony analyses between pairs of EEG so I need a minimal delay between them.

Thank you for your help!

Dominant language
HTML
Stars
778
Forks
194
Avg merge
13m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sccn/labstreaminglayer

All issues in sccn/labstreaminglayer

Similar issues

More Distributed Systems issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.