openyou / emokit

Open source driver for accessing raw data from the Emotiv EPOC EEG headset
http://www.openyou.org
Other
521 stars 235 forks source link

The Emokit code, through the years... #285

Open PaulMuadDib opened 5 years ago

PaulMuadDib commented 5 years ago

Hello there, I have an old 2014 consumer headset, i7/16 Go RAM, windows 10, python 3.6 (anaconda), a not up-to-date version of Openvibe (v1.2.2) and I use both a very recent download (this month) of the python version of Emokit (from this github), and an older c version of Emokit from Daeken's github I think, and compiled with its dependencies more than 3 yrs ago. With the python version, I stream the Emokit signals using lsl or tcp (data packets formatted as floats) to Openvibe, the c-version of Emokit is used as a driver directly in the Openvibe acquisition server (in this case, the Emotiv is directly accessed and its signals read from OV). And I get two distinct behaviours: the python scripts stream (& write csv files) signals with repeted weird constant portions among the channels (as if the data packet throughput of the python code was not sufficient) whereas the old c version Emokit driver outputs the expected signals. The csv files written by the python scripts both display a constant timestamping for varying EEG values and constant EEG values for different timestamps on varied channels (constant signals). When closing / ending the Emokit lsl / tcp stream, Openvibe acquisition server statistics shows a large difference between the expected number of samples (given the duration of the acquisition and the sample freq) and the number of received samples (which are generally around 60% of the expected number). The python script for lsl or tcp streaming are directly derived from the basic example given:

lsl script image

tcp script image

lsl/tcp result image

Emokit driver result image