Newbie! help!


Hi I am Mark Leus from the Philippines.

Me and my team needs a help ASAP.

We have recorded several recordings and we need to extract Alpha, Beta, Theta, Gamma waves.

How can we extract them to their corresponding values?

Also, is there a way to get the timestamp into milliseconds or seconds?


Hi there,

The Alpha, Beta, Theta, and Gamma power values are provided by MuseIO. MuseIO provides absolute and relative powers for each of the bands, as well as the output of a custom scoring function.

Please take a close look at our documentation for the different OSC paths that MuseIO uses:

The documentation explains what data is available and what it means.

Is there a specific problem you’re having with these values?

The timestamps are in seconds since January 1, 1970, with decimal precision down to microseconds.


Thank you sir Tom.

Are these alpha, beta, theta and gamma power values are already filtered from noises like blinking of the eyes, jaw clenched and other noise?
Because in our thesis we need to filter the eeg to remove noises.


In addition to that,

is there a way to convert the recording to .csv wherein the alpha,beta,theta, etc. will be recorded by column?
for example

Time | Alpha | Beta | Theta | Delta | Gamma

t1 | a1 | b1 | t1 | d1 | g1 |
t2 | a2 | b1 | t2 | d2 | g2 |
t3 | a3 | b1 | t3 | d3 | g3 |
t4 | a4 | b1 | t4 | d4 | g4 |
t5 | a5 | b1 | t5 | d5 | g5 |
t6 | a6 | b1 | t6 | d6 | g6 |
t7 | a7 | b1 | t7 | d7 | g7 |
t8 | a8 | b1 | t8 | d8 | g8 |

t = values of time
a = values of alpha
b = values of beta
t = values of theta
d = values of delta
g = values of gamma

Thank you so much.


The relative and absolute Alpha, Beta, etc. paths do not have artifacts automatically removed from them. If the data is “bad”, i.e. considered by MuseIO to be unusable as EEG, the relative and absolute band power values will not be updated. They will just stay at whatever value they were when the data started to look bad.

In terms of filtering, there is a digital notch filter in the firmware that can be set to 60Hz or 50Hz depending on your location (or turned off), as well as some lowpass filtering and downsampling, and the inherent frequency response of the analog electronics.

As for your question about the CSV files, please read my response to your teammate here:


I need a quick response please.

I have extracted these following features: alpha_absolute, beta_absolute, and theta_absolute and in some if their power values, it recorded a value of -inf.
What does this “-inf” symbolizes or represents.

Thank you.

Sincerely yours,

Mark Leus


Another questions is,

how can I compute for alpha_relative, beta_relative, etc. for old recorded muse sessions?
because the OSC paths has no relative values yet.

Thank you.

Sincerely yours,

Mark Leus


Hi Mark,

The -inf values mean “negative infinity”, and imply that the power spectral density in that particular frequency range is zero. Remember, the values in the /muse/elements/*_absolute paths are the log of the power spectral density, and that log(0) = -infinity. If the time domain flatlines (i.e. becomes a DC signal), then the power in the various EEG frequency bands will be zero.

A note: right now MuseIO sets the /muse/elements/*_absolute data to zero when it considers the data to be “bad”. However, it does not currently consider flatlines to be “bad” and so does not set the data to zero in that case. The way in which we treat “bad” data may change in future updates to the SDK to be a little clearer. Stay tuned!

To your second question, you can just use the /muse/elements/alpha,beta,gamma, etc. paths. Those are relative band powers. In the latest SDK, we added absolute band powers and so had to rename the old ones to make the distinction clear.


To calculate alpha/beta etc you can design serveral high pass FIR filters which is easy to implement and hard to design if you don’t have the background.

Or you can do DFT and select the frequency band you want and zero out the other values then IDFT the whole thing. This will take some time to implement if you don’t already have the code but is quite intuitive.

I’m not aware of a good way to filter out artifacts. I believe you can identify blink/movements by a sudden change across all bands on the spectrogram.



I just want to ask if is there a way of transforming the raw EEG signals into its frequency-domain values?

Thank you.