PhilippThoelke / goofi-pipe

real-time neuro-/biosignal processing and streaming pipeline
MIT License
22 stars 3 forks source link

Integrating Heart-Rate synchrony measures / control interfaces #5

Open GeorgeFejer91 opened 10 months ago

GeorgeFejer91 commented 10 months ago

Hi all, Really cool project here, I would be interested in using goofi-pipe to run experiments (and art projects) that utilize heart-synchronization betwen 2 or more participants. I am interested in using various techniques for measuring interpersonal synchronization, e.g. sliding window correlations, or more interestingly frequency-domain specific wavelet coherence analyses (see: https://www.heartmath.org/assets/uploads/2015/01/achieving-collective-coherence.pdf; https://journals.sagepub.com/doi/full/10.1177/1088868316628405#bibr15-1088868316628405).

I am sure there are various different means of calculating synchrony, and would be happy to contribute with ideas regarding their implementation. Is anyone on the team interested in developing this further? Are there any means of utilizing ECG via the LSL stream and calculating some basic synchrony measures in real-time via the current goofi-pipe?

PhilippThoelke commented 10 months ago

We have a couple of connectivity measures that come more from M/EEG analysis, I'm not sure if they are helpful in your case. Otherwise it's possible to compute per-subject metrics (e.g. HRV) and then correlate them across subjects using the Buffer and Correlation nodes. We don't have a lot of ECG-related nodes yet but I know @sangfrois was working on some, maybe he has some ideas as well.

Regarding using ECG via LSL it is hard to say what the problem is without further information. So far we tried the LSLClient node with several EEG devices, which usually works without problems. Please describe your problem a bit further, e.g. does goofi-pipe detect the LSL stream of your device (the devices are printed in the terminal by the LSLClient node)? What happens when you set the host and stream name of your device in the LSLClient node, i.e. is there an error?

sangfrois commented 10 months ago

Now I really have to push this cardiorespiratory variability node. Sorry, I was having issues with reading serial stream due to my not being able access the Arduino port. It has delayed my process a bit. I can create a PR with the untested node though.