Timing for Muse-Lab Recording File


The file created by Muse-Lab through the recording function provides a time-stamp for each sample. What exactly do those timestamps represent? Are they provided at the hardware level as an exact sample acquisition time? Or are they created when the data hits Muse IO via BT?

In terms of actually doing analysis using the raw data, how are we expected to use the timestamps? Do we assume equal spacing of the samples? Or do we need to actually do all raw data analysis assuming uneven spacing and referencing the timestamps for each sample?

And is the sampling frequency (220hz / 500hz) reliable? In other words, if I took 220k samples would it span 220k seconds?

Thanks for any/all help!



The timestamp is recorded at the time of arrival, and they will not typically be spaced a sample period apart as the bluetooth data does not always arrive at user level processes in a real-time manner.

The timestamp is useful for relating samples, within a few ms, to when they were received. Bluetooth latency depends on the OS and hardware but is ~15ms for most of our setups.

For numerical analysis / FFTs assume the sampling frequency is regular and the stated frequency. The EEG sampling is happening with great regularity even if the samples are not arriving to our process from bluetooth with similar regularity.

We do calibrate the frequency but it is affected by temperature, and can shift about ±.25% target. The feedback in muse-io as to the receiving frequency is averaged over a few seconds and is probably the most accurate.


Thanks Matt. That all makes sense. When I look at the stated freq in Muse IO it always seems to be high (usually 1-2hz higher). I assumed that was the case because it was including other data packets in its calculation? Or is it only looking at EEG?


Maybe .25% is a bit optimistic. The frequency dumped by muse-io is pretty accurate. Ideally it should be 220 ± 1hz. There is some part-to-part variation, with our trim registers being coarser in resolution then would be perfectly ideal, and depending on the ambient temperature, getting ~221.5 hz is not out of spec. It should be consistent at least. Hot = slightly slower, cold = slightly faster.


Hi, I wanted to calculate the frontal asymmetry index using the formula (log(Alpha power right/Alpha power left), the issue I am facing is about deciding which value of alpha should be used e.g. absolute mean or relative mean or raw data right/left. The eeg data is recorded for 15 min session.

Is it ok if I take average of all Alpha absolute power values and use it in the formula?

Please provide some suggestions.