You cannot export an EEG data recording from EmotivPRO for Tablet; you can only do this from the EmotivPRO desktop application with an active EmotivPRO subscription.
To export an EEG data recording so you can analyse it in another software program:
Go to the Recording view in the EmotivPRO desktop application.
Find the EEG data recording you want to export from the list.
Hover your mouse over the EEG data recording you want to export.
To the right-hand side of your selected recording you will see a export icon. Click on the icon.
A window will open on the screen with different data export options. Select or unselect additional data streams you want to export (EEG data is always exported), choose a folder to export the EEG data recording to, and choose whether you want your data exported as a CSV or EDF file.
The EEG data will be exported to the chosen folder.
The recording first need to synced to the desktop before it can first be exported. Make sure the cloud icon towards the left of experiment name is in Green. Click for it to sync incase it is not synced already
Exporting EEG data recordings containing keystroke markers
If the EEG data recording you’re exporting contains keystroke markers, a JSON file is also exported. The JSON file contains the descriptions for the keystroke markers, their corresponding values in the EDF and CSV files.
For more information about formatting EDF and CSV files, visit the Exported Data Files section of this user guide.
Please note: EmotivPRO currently only supports Raw EEG and Frequency Analysis for EPOC Flex.
In addition to EDF Files, EmotivPRO also supports EEG and motion data export in EDF+ (European Data Format)/ BDF+ (Biosemi Data Format) files. These formats are widely used and compatible with various EEG analysis programs.
EDF+ and BDF+ Files: Both EDF+ and BDF+ files follow a similar structure, consisting of header information followed by data samples. Each row in the data file corresponds to a time slice of data, with successive rows representing successive time slices. Columns in the data file correspond to sensor locations or other information tags.
Storage of EEG and Motion Data: One advantage of EDF+ and BDF+ formats over EDF is their flexibility in data organization, these formats allow for both types of data to be stored within the same file. By labeling channels appropriately, EEG, motion, and other types of data can coexist within a single EDF+ or BDF+ file, facilitating efficient storage and analysis of multiple data streams simultaneously.
For list of please refer to the EDF format page
The CSV file has a header made of 2 lines. The first line contains information about the record and its data streams. The second line is a classic CSV header with the name of the columns.
The first line of the CSV file is a comma separated list of key and value pairs. The key is separated from the value by a colon. It looks like key1:value1, key2:value2, key3:value3
Here is the meaning of each key and value pair:
Example:
title:foo, start timestamp:1623658701.491566, stop timestamp:1623658723.788441, headset type:INSIGHT, headset serial:7AEC4253, headset firmware:931, channels:28, sampling rate:128, samples:2855 , version:2.1,
The comma separated list of the column names of this CSV file.
Example:
Timestamp,EEG.Counter,EEG.Interpolated,EEG.AF3,EEG.T7,EEG.Pz,EEG.T8,EEG.AF4,EEG.RawCq,EEG.Battery,EEG.BatteryPercent,MarkerIndex,MarkerType,MarkerValueInt,EEG.MarkerHardware,CQ.AF3,CQ.T7,CQ.Pz,CQ.T8,CQ.AF4,CQ.Overall,EQ.SampleRateQuality,EQ.OVERALL,EQ.AF3,EQ.T7,EQ.Pz,EQ.T8,EQ.AF4
The CSV file contains many columns. For clarity, we divide them into categories in this documentation. The exact content of your CSV file depends on the options you selected when you exported the record.
The name of the columns has the format PM.<name>.<value> The <name> is the name of a performance metric. There are 6 possible values: Engagement, Excitement, Stress, Relaxation, Interest, Focus. The <value> can be IsActive, Scaled, Raw, Min, Max.
Examples: PM.Engagement.Min, PM.Stress.IsActive, PM.Relaxation.Scaled
To scale the Raw value post hoc for a given recording, you can use the Min and Max values at the end of the recording (where they are most stable) and the following equation:
There is one additional column, named "PM.LongTermExcitement". Long Term Excitement is a metric derived from the Excitement metric. It is a better measurement of overall mood, rather than acute changes in mental arousal.
The possible values for MC.Action are:
The file contains 5 columns for each EEG sensor of the headset. The name of the columns has the format POW.<sensor>.<band>
The bands are:
Theta: 4-8 Hertz
Alpha: 8-12 Hertz
BetaL: 12-16 Hertz
BetaH: 16-25 Hertz
Gamma: 25-45 Hertz
For example, for the EEG sensor AF3, the file has 5 columns: POW.AF3.Theta, POW.AF3.Alpha, POW.AF3.BetaL, POW.AF3.BetaH, POW.AF3.Gamma.
Key
Value
title
The title of the record
start timestamp
The timestamp of the first EEG sample of the record
stop timestamp
The timestamp of the last EEG sample of the record
headset type
The type of the headset used during this record. It can be INSIGHT, EPOC, EPOCPLUS, EPOCFLEX, EPOCX, MN8
headset serial
The serial number of the headset
headset firmware
The firmware version of the headset
channels
The number of columns in this CSV file
sampling rate
The sample rate of each data stream.
samples
The number of data samples in this CSV file.
Column name
Value
EEG.Counter
Increment by 1 for each sample, reset to zero every second.
EEG.Interpolated
0 if this EEG sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex.
EEG.<sensor>
Examples: EEG.AF3, EEG.T7, EEG.Pz, EEG.T8
For each EEG sensor, you get 1 value in microvolt.
EEG.Battery
The battery level of the headset, from 0 to 4.
EEG.BatteryPercent
The battery level of the headset, from 0 to 100. It has the same purpose as the column "Battery", but it is more precise.
EEG.MarkerHardware
1 if a hardware marker was received for this EEG sample.
0 otherwise.
Hardware markers are created with the Extender
Column name
Value
MOT.CounterMems
Increment by 1 for each sample, reset to zero every second.
MOT.InterpolatedMems
0 if this motion sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex.
MOT.Q0, MOT.Q1, MOT.Q2, MOT.Q3
Quaternions of the gyroscope (newer EMOTIV headsets)
MOT.GYROX, MOT.GYROY, MOT.GYROZ
X, Y, Z axis of the gyroscope (older EMOTIV headsets)
MOT.AccX, MOT.AccY, MOT.AccZ
X, Y, Z axis of the accelerometer.
MOT.MagX, MOT.MagY, MOT.MagZ
X, Y, Z axis of the magnetometer.
Column name
Value
CQ.Overall
The overall contact quality is a value from 0 to 100 that is calculated from the contact quality of all the EEG sensors.
CQ.<sensor> Examples: CQ.AF3, CQ.T7, CQ.Pz, CQ.T8, CQ.AF4
The contact quality of each EEG sensor, from 0 to 4.
Column name
Value
EQ.SampleRateQuality
A float value from 0 to 1 that evaluates the actual sample rate of the EEG data coming from the headset.
If the wireless connection between the headset and the computer is perfect (no data loss) then the sample rate quality is 1. If X percent of the EEG samples were lost over the last 2 seconds, then the SRQ is (100 - X) / 100.
If we lost more than 300 ms of data over the last 2 seconds, then the SRQ takes the special value -1.
EQ.OVERALL
A value from 0 to 100 that is calculated from the EEG quality of all the EEG sensors.
EQ.<sensor>
Examples: EQ.AF3,EQ.T7,EQ.Pz,EQ.T8,EQ.AF4
The EEG quality of each EEG sensor, from 0 to 4.
Value
Meaning
IsActive
1 if the detection is running properly. It is 0 if the detection cannot run. This can happen if the EEG signal from the headset is of poor quality.
Scaled
The Scaled column shows the Raw value scaled to fit on a 0 to 1 scale to provide more context for each individual's scores. The scaling is based on a successive approximation of the mean and variance for each recording, calculated as the session progresses. The data file reflects this progressive scaling which usually stabilizes after a few minutes.
Raw
The Raw column shows the raw value outputted from our Performance Metrics algorithm, which can range from single digit negative numbers to single digit positive numbers. Different individuals can have non-overlapping ranges. These numbers are meaningful when looked at relatively.
Min, Max
Min and Max values set lower and upper bounds for the Scaled value and are calculated from the current mean and variance of the Raw value. Initial values of Min and Max are set based on population data. The current value is scaled so that Min maps to .05 and Max maps to .95 on the 0-1 scale. We use a logistic scale to prevent data cutoff at 0 and 1 boundaries; the range around the mean value (mapped to 0.5) is close to linear while the extremes get steadily more nonlinear.
Column name
Value
MC.Action
A mental command action. See the meaning of each value below.
MC.ActionPower
The power of the action. It is a decimal number between 0 and 1, zero means "low power", 1 means "high power".
MC.IsActive
1 if the detection is running properly. It is 0 if the detection cannot run. This can happen if the EEG signal from the headset is of poor quality.
MC.Action
Meaning
1
Neutral
2
Push
4
Pull
8
Lift
16
Drop
32
Left
64
Right
128
Rotate Left
256
Rotate Right
512
Rotate Clockwise
1024
Rotate Counter-Clockwise
2048
Rotate Forward
4096
Rotate Backward
8192
Disappear
Column name
Value
FE.BlinkWink
1 for "Neutral"
10 for "Blink"
11 for "Wink Left"
12 for "Wink Right"
FE.HorizontalEyesDirection
-1 for "Look Left"
0 for "Neutral"
1 for "Look Right"
FE.UpperFaceAction
1 for "Neutral"
32 for "Raise Brows"
64 for "Furrow Brows"
FE.UpperFaceActionPower
The power of the upper face action. It is a decimal number between 0 and 1, zero means "low power", 1 means "high power".
FE.LowerFaceAction
1 for "Neutral"
128 for "Smile"
256 for "Clench Teeth"
512 for "Laugh"
1024 for "Smirk Left" 2048 for "Smirk Right"
FE.LowerFaceActionPower
The power of the lower face action. It is a decimal number between 0 and 1, zero means "low power", 1 means "high power".
If your recording contains keystroke markers, a JSON file will also be exported. This JSON file contains the descriptions of the keystroke markers used and their corresponding values in the EDF and CSV files.
A Baseline JSON file is created when baseline recording is enabled. The baseline markers and their corresponding values are:
Eyes Opened Start : 1
Eyes Opened End: 2
Eyes Closed Start: 3
Eyes Closed End: 4
In case of EPOC Flex, a separate JSON file is created that outputs the mapping for channel names and sensor positions for the selected session. For e.g.:
"CMS": "Afz",
"DRL": "FCz",
"LA": "C3",
"LB": "T7",
"LC": "FC1",
"LD": "FC5",
"LE": "FT9",
"LF": "F3",
"LG": "F7",
"LH": "Fp1",
"LJ": "Pz",
"LK": "Cz",
"LL": "O1",
"LM": "TP9",
"LN": "P3",
"LO": "P7",
"LP": "CP1",
"LQ": "CP5",
"RA": "C4",
"RB": "T8",
"RC": "FC2",
"RD": "FC6",
"RE": "FT10",
"RF": "F4",
"RG": "F8",
"RH": "Fp2",
"RJ": "Oz",
"RK": "Fz",
"RL": "O2",
"RM": "TP10",
"RN": "P4",
"RO": "P8",
"RP": "CP2",
"RQ": "CP6"
EEG and motion data are stored by EmotivPRO in a standard binary format, EDF, which is compatible with many EEG analysis programs. Following the initial information line, each successive row in the data file corresponds to one data sample, or 1/32, 1/64, 1/128 or 1/256 second time slice of data (depending on your headset’s frequency rate and if the data file is EEG or motion data). Successive rows correspond to successive time slices and each column of the data file corresponds to to an individual sensor location or other information tag.
Emotiv PRO exports your record in 2 separate EDF files:
1 file with the EEG data, the contact quality and the EEG quality
1 file with the motion data
These EDF files follow the .
The EEG file includes these columns:
When you export a recording, you will also get an EDF file for the motion data (named "xxx.md.edf"), if that data was collected from your headset. This file is in the same format as the EEG file and with the same descriptive tags.
The EDF files includes 2 columns named "TIME_STAMP_s" and "TIME_STAMP_ms". You need to combine them in order to get a usable timestamp for each sample:
RELATIVE_TIME is the number of seconds elapsed since the beginning of the record. So it means that the first EEG sample of record has a relative timestamp of zero. The relative timestamp of the last EEG sample gives you the duration of the record.
Instead, you should read the field reserved
of the EDF header. This field stores the start date and time of the record as a string, with a precision of 1 microsecond.
The format is YYYY-MM-DDThh:mm:ss.mmmmmm+TIMEZONE
Example: 2020-06-19T15:36:47.256794+07:00
To get the start date and time of the record, you can read the fields startdate
and starttime
from the . However, the field starttime
has a precision of 1 second, which is not enough to combine it with the relative timestamps.
Column name | Value |
TIME_STAMP_s | See below for details |
TIME_STAMP_ms | See below for details |
COUNTER_MEMS | Increment by 1 for each motion sample, reset to zero every second. |
INTERPOLATED_MEM | 0 if this motion sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex. |
Q0, Q1, Q2, Q3 | Quaternions of the gyroscope (newer EMOTIV headsets) |
GYROX, GYROY, GYROZ | X, Y, Z axis of the gyroscope (older EMOTIV headsets) |
ACCX, ACCY, ACCZ | X, Y, Z axis of the accelerometer. |
MAGX, MAGY, MAGZ | X, Y, Z axis of the magnetometer. |
Column name | Value |
TIME_STAMP_s | See below for details |
TIME_STAMP_ms | See below for details |
COUNTER | Increment by 1 for each sample, reset to zero every second. |
INTERPOLATED | 0 if this EEG sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex. |
<sensor> Examples: AF3, T7, Pz, T8 | For each EEG sensor, you get 1 value in microvolt. |
BATTERY | The battery level of the headset, from 0 to 4. |
BATTERY_PERCENT | The battery level of the headset, from 0 to 100. It has the same purpose as the column "Battery", but it is more precise. |
MARKER_HARDWARE | 1 if a hardware marker was received for this EEG sample. 0 otherwise. |
CQ_<sensor> Examples: CQ_AF3, CQ_T7, CQ_Pz, CQ_T8 | The contact quality of each EEG sensor, from 0 to 4. |
CQ_OVERALL | The overall contact quality is a value from 0 to 100 that is calculated from the contact quality of all the EEG sensors. |
EQ_<sensor> Examples: EQ_AF3, EQ_T7, EQ_Pz, EQ_T8 | The EEG quality of each EEG sensor, from 0 to 4. |
EQ_SampleRateQua | A float value from 0 to 1 that evaluates the actual sample rate of the EEG data coming from the headset. If the wireless connection between the headset and the computer is perfect (no data loss) then the sample rate quality is 1. If X percent of the EEG samples were lost over the last 2 seconds, then the SRQ is (100 - X) / 100. If we lost more than 300 ms of data over the last 2 seconds, then the SRQ takes the special value -1. |
EQ_OVERALL | A value from 0 to 100 that is calculated from the EEG quality of all the EEG sensors. |
Hardware markers are created with the .