Skip to content

Instantly share code, notes, and snippets.

@VehpuS
Created May 19, 2022 20:32
Show Gist options
  • Save VehpuS/9c32017d13d3465e218dc21db7466eb8 to your computer and use it in GitHub Desktop.
Save VehpuS/9c32017d13d3465e218dc21db7466eb8 to your computer and use it in GitHub Desktop.
After luckily finding a wayback version of the Muse V1 SDK (which can be accessed by interfacing with the muse-io executable - accessible here https://github.com/VehpuS/muse_tools) - I'm copying the data documentation for future users: https://web.archive.org/web/20181105231756/http://developer.choosemuse.com/tools/available-data#Concentration
<html>
<head>
</head>
<body>
<div class="toc-content">
<p class="large">This is a list of all the data available from MuseIO. For the data available from LibMuse, please see the API Reference for your platform.</p>
<div class="admonition-note-weak">NOTE: Different data parameters like sampling rate, resolution, and more can be configured using <a title="Headband Configuration Presets" href="https://web.archive.org/web/20181105231756/http://dev.choosemuse.com/hardware-firmware/headband-configuration-presets">preset commands</a> that are sent when a connection to Muse is established.</div>
<h2><span id="EEG_Data"><b>EEG Data</b></span></h2>
<div class="toc-step-content">
<h3><span id="Raw_EEG"><b>Raw EEG</b></span></h3>
<div>This is the raw EEG data for each channel on the headband as measured in microvolts. Filtering options, sampling rate, compression, and various other settings are configurable via <a title="Headband Configuration Presets" href="https://web.archive.org/web/20181105231756/http://dev.choosemuse.com/documentation/manual/hardware-firmware/headband-configuration-presets">presets</a>.</div>
<div>&nbsp;
<table id="tablepress-museio_eeg" class="tablepress tablepress-id-museio_eeg">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Path</td><td class="column-2">/muse/eeg</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Units</td><td class="column-2">uV</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Datatype</td><td class="column-2">floats</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Resolution</td><td class="column-2">
<table id="tablepress-eeg_resolution_vs_preset" class="tablepress tablepress-id-eeg_resolution_vs_preset">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Preset ID</td><td class="column-2">Resolution</td>
</tr>
<tr class="row-2 even">
<td class="column-1">10, 12, 14</td><td class="column-2">10 bit</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">AD, AE</td><td class="column-2">16 bit</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Range</td><td class="column-2">
<table id="tablepress-eeg_range_vs_timestamp_flag" class="tablepress tablepress-id-eeg_range_vs_timestamp_flag">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Normal (recommended)</td><td class="column-2">with --no-scale flag (NOT recommended)</td>
</tr>
<tr class="row-2 even">
<td class="column-1">0.0 - 1682.815 uV</td><td class="column-2">0.0 - 1023.0 unitless</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Sampling rate</td><td class="column-2">
<table id="tablepress-eeg_sampling_v_preset" class="tablepress tablepress-id-eeg_sampling_v_preset">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Preset ID</td><td class="column-2">Sampling Rate (Hz)</td>
</tr>
<tr class="row-2 even">
<td class="column-1">10, 12, 14</td><td class="column-2">220</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">AD, AE</td><td class="column-2">500</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="row-7 odd">
<td class="column-1">Channel configuration</td><td class="column-2">
<table id="tablepress-eeg_channel_config" class="tablepress tablepress-id-eeg_channel_config">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Preset ID</td><td class="column-2">Channels</td>
</tr>
<tr class="row-2 even">
<td class="column-1">10, 12, 14, AD</td><td class="column-2">[TP9, Fp1, Fp2, TP10]</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">AE</td><td class="column-2">[TP9, Fp1, Fp2, TP10, DRL, REF]</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div class="admonition-note-weak">NOTE: When using MuseIO, if the –osc_timestamp option is used, there are 2 extra fields appended to these messages:
<ul>
<li>integer: Number of seconds since 1970 when this event occurred</li>
<li>integer: Number of microseconds within that second</li>
</ul>
</div>
<div class="admonition-note-weak">NOTE: If you use the –no-scale command-line option with MuseIO, you get the EEG values as seen by the analog to digital converter. These are not in microvolts. We do not recommend you use these as they may change at any time.</div>
<h3><span id="EEG_Quantization_Level"><b>EEG Quantization Level</b></span></h3>
<div>When using the consumer presets, the EEG data is compressed.&nbsp;If there is too much variation in the signal, then the signal must be rounded off (estimated) when it is sent. To decrease the size of the data, the EEG value is divided by a number before it is sent. This is the number it is divided by.</div>
<div>
<table id="tablepress-museio_quantization" class="tablepress tablepress-id-museio_quantization">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Datatype</td><td class="column-2">int</td>
</tr>
<tr class="row-2 even">
<td class="column-1">MuseIO OSC path</td><td class="column-2">/muse/eeg/quantization</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">MuseIO OSC data format </td><td class="column-2">i</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Range</td><td class="column-2">1, 2, 4, 8, 16, 32, 64,128</td>
</tr>
</tbody>
</table>
</div>
<h3><span id="Dropped_EEG_Samples"><b>Dropped EEG Samples</b></span></h3>
Number of EEG samples dropped from bluetooth connection issues. This applies to all four/six (depending on preset) channels. One dropped sample here indicates one sample has been dropped from each channel. Position of this message in the message stream indicates where the dropped samples occurred.
<table id="tablepress-museio_dropped_eeg" class="tablepress tablepress-id-museio_dropped_eeg">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Datatype</td><td class="column-2">int</td>
</tr>
<tr class="row-2 even">
<td class="column-1">MuseIO OSC path</td><td class="column-2">/muse/eeg/dropped_samples</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">MuseIO OSC data format </td><td class="column-2">i</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Range</td><td class="column-2">0 - 65535</td>
</tr>
</tbody>
</table>
</div>
<h2><span id="AccelerometerData"><a name="TOC-Accelerometer-Paths"></a><b>Accelerometer&nbsp;Data</b></span></h2>
<div class="toc-step-content">
<h3><span id="Raw_Accelerometer_Data"><b>Raw Accelerometer Data</b></span></h3>
<div>Accelerometer data is emitted at 50Hz. The three values represent acceleration relative to gravity in the x, y, z directions, in that order. The relative positions specified(forward/back, up/down) are if you are wearing Muse properly on your head.&nbsp;These values are in milli-G’s where 1 G is the force of gravity, this is also known as “weight per unit mass” or “acceleration vector”.</div>
<div>For an explanation of G-forces,&nbsp;see:&nbsp;<a href="https://web.archive.org/web/20181105231756/http://en.wikipedia.org/wiki/G-force" rel="nofollow">http://en.wikipedia.org/wiki/G-force</a></div>
<div>Some relevant points:</div>
<ul>
<li>The g-force acting on a stationary object resting on the Earth’s surface is 1g (upwards) and results from the resisting reaction of the Earth’s surface bearing upwards equal to an acceleration of 1 g, and is equal and opposite to gravity. The number 1 is approximate, depending on location.</li>
<li>The g-force acting on an object under acceleration can be much greater than 1g</li>
</ul>
<div><span style="line-height: 1.5;">
<table id="tablepress-museio_accelerometer" class="tablepress tablepress-id-museio_accelerometer">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Path</td><td class="column-2">/muse/acc</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Units</td><td class="column-2">milli-g</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Datatype</td><td class="column-2">three floats</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Resolution</td><td class="column-2">10 bits</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Range</td><td class="column-2">
<table id="tablepress-accel_range_vs_preset" class="tablepress tablepress-id-accel_range_vs_preset">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Normal (recommended)</td><td class="column-2">With MuseIO --no-scale flag</td>
</tr>
<tr class="row-2 even">
<td class="column-1">-2000.0 - 1996.1 milli-g</td><td class="column-2">-512 - 511 unitless</td>
</tr>
<tr class="row-3 odd">
<td class="column-1"></td><td class="column-2"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Sampling rate</td><td class="column-2">50Hz</td>
</tr>
<tr class="row-7 odd">
<td class="column-1">Channel configuration</td><td class="column-2">
<table id="tablepress-accel_channel_config_vs_preset" class="tablepress tablepress-id-accel_channel_config_vs_preset">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Preset ID</td><td class="column-2">Channel Configuration</td>
</tr>
<tr class="row-2 even">
<td class="column-1">12, 14, AD, AE</td><td class="column-2">[ACC_X, ACC_Y, ACC_Z]</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">10</td><td class="column-2">Not available</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</span></div>
<div class="admonition-note-weak">NOTE: If you use the –no-scale command-line option with MuseIO, you get the proprietary raw data, before it is converted to milli-g units. We do not recommend you use this as it may change at any time.</div>
<h3><span id="Dropped_Accelerometer_Samples"><a name="TOC-muse-acc-dropped_samples-:-i"></a><b>Dropped Accelerometer Samples</b></span></h3>
Number of accelerometer samples dropped from bluetooth connection issues. This applies to all three axes. One dropped sample here indicates one sample dropped from each axis. Position of this message in the message stream indicates where the dropped samples occurred.
<table id="tablepress-dropped_accelerometer" class="tablepress tablepress-id-dropped_accelerometer">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Datatype</td><td class="column-2">int</td>
</tr>
<tr class="row-2 even">
<td class="column-1">MuseIO OSC path</td><td class="column-2">/muse/acc/dropped_samples</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">MuseIO OSC data format </td><td class="column-2">i</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Range</td><td class="column-2">0 - 65535</td>
</tr>
</tbody>
</table>
</div>
<h2><span id="Muse_Elements_Data"><a name="TOC-Muse-Elements-Paths"></a>Muse Elements Data</span></h2>
<div class="toc-step-content">
<div>It is difficult to work with raw brain signals without a background in neuroscience or machine learning. Usually they are run through a series of computations to produce more useful features.&nbsp;The values given in this section are computed from the raw EEG values shown above. “<strong>Muse Elements</strong>” is our algorithm and signal processing pack for developers.</div>
<div></div>
<div></div>
<div>
<div>
<div>
<div>
<div>
<h3><a name="TOC-Raw-FFTs-for-Each-Channel"></a></h3>
<h3><span id="Raw_FFTs_for_Each_Channel"><b>Raw FFTs for Each Channel</b></span></h3>
</div>
FFT stands for Fast Fourier Transform. This computes the power spectral density of each frequency on each channel. Basically, it shows which frequencies make up a signal, and &nbsp;“how much” of each frequency is present.
These values are the basis for many of the subsequent DSP values in Muse Elements.
Each path contains 129 decimal values with a range of roughly -40.0 to 20.0. Each&nbsp;array represents FFT coefficients (expressed as Power Spectral Density) for each channel, for a frequency range from 0hz-110Hz divided into 129 bins. We use a Hamming window of 256 samples(at 220Hz), then for the next FFT we slide the window 22 samples over(1/10th of a second). This gives a 90% overlap from one window to the next. These values are emitted at 10Hz.
</div>
<div>
<table id="tablepress-raw_ffts" class="tablepress tablepress-id-raw_ffts">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Datatype</td><td class="column-2">129 floats</td>
</tr>
<tr class="row-2 even">
<td class="column-1">MuseIO OSC Paths</td><td class="column-2">/muse/elements/raw_fft0<br>
/muse/elements/raw_fft1<br>
/muse/elements/raw_fft2<br>
/muse/elements/raw_fft3</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">MuseIO OSC Data Format</td><td class="column-2">All presets: fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</td>
</tr>
<tr class="row-4 even">
<td class="column-1">MuseIO message contents</td><td class="column-2">129 coefficients representing the logarithm of Power Spectral density for frequencies in the range of 0-110Hz<br>
</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Units</td><td class="column-2">dB </td>
</tr>
<tr class="row-6 even">
<td class="column-1">Range</td><td class="column-2">0.0 - 1682.815 or 0 - 1023 with --no-scale flag</td>
</tr>
<tr class="row-7 odd">
<td class="column-1">Sampling rate</td><td class="column-2">Approximately -40.0 to 20.0</td>
</tr>
</tbody>
</table>
</div>
<p></p><h4><span id="Understanding_Frequency_Bins">Understanding Frequency Bins</span></h4>
<div>
<p>The FFTs are calculated using a 256 sample window, which gives a transform that has 256 components and is symmetric (i.e. mirrored) around an additional component at 0Hz. In other words, you have 128 components, followed by one for 0Hz, and then the mirror image of the same components. This means you need only consider half of them (because the other half are the same, only reflected) plus the one for 0Hz at the centre, which gives you 129 in total.
</p><p>To get the frequency resolution for the bins, you can divide the sampling rate by the FFT length, so in the case of Muse: 220/256 ~ 0.86Hz/bin
</p><p>So, the zeroth index of the FFT array represents 0Hz, the next index represents 0-0.86Hz, and so on up to 128*0.86 = 110Hz, which is the maximum frequency that our FFT with its 220Hz sampling rate can detect.
</p></div>
</div>
<p></p><h3><span id="Absolute_Band_Powers"><b>Absolute Band Powers</b></span></h3>
<p></p><div>The absolute band power for a given frequency range (for instance, alpha, i.e. 9-13Hz) is the logarithm of the sum of the Power Spectral Density of the EEG data over that frequency range. They are provided for each of the four to six channels/electrode sites on Muse.</div>
<p></p><div>Since it is a logarithm, some of the values will be negative (i.e. when the absolute power is less than 1) They are given on a log scale, units are Bels.</div>
<p></p><div>
<table id="tablepress-absolute_band_powers" class="tablepress tablepress-id-absolute_band_powers">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Paths</td><td class="column-2">/muse/elements/low_freqs_absolute<br>
/muse/elements/delta_absolute<br>
/muse/elements/theta_absolute<br>
/muse/elements/alpha_absolute<br>
/muse/elements/beta_absolute<br>
/muse/elements/gamma_absolute</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Units</td><td class="column-2">Bels (B)</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Datatype</td><td class="column-2">floats</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Transmission frequency</td><td class="column-2">10 Hz</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">MuseIO OSC Data Format</td><td class="column-2">Four channels (electrode sites) for each band power: ffff</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Frequency Ranges*</td><td class="column-2">
<table id="tablepress-absolute_band_power_frequency_ranges" class="tablepress tablepress-id-absolute_band_power_frequency_ranges">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Name</td><td class="column-2">Frequency Range</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-2 even">
<td class="column-1">low_freqs</td><td class="column-2">2.5-6.1Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-3 odd">
<td class="column-1">delta_absolute</td><td class="column-2">1-4Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-4 even">
<td class="column-1">theta_absolute</td><td class="column-2">4-8Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-5 odd">
<td class="column-1">alpha_absolute</td><td class="column-2">7.5-13Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-6 even">
<td class="column-1">beta_absolute</td><td class="column-2">13-30Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-7 odd">
<td class="column-1">gamma_absolute</td><td class="column-2">30-44Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<b>&nbsp;</b></div>
* The boundaries of the frequency ranges are inclusive of the end values. Where 2 ranges overlap, a frequency in the overlapping area counts in both ranges.
<p>
</p></div>
<h3><span id="Relative_Band_Powers"><b>Relative Band Powers</b></span></h3>
<div>
<div class="sites-codeblock sites-codesnippet-block">
<p>The relative band powers are calculated by dividing the absolute linear-scale power in one band over the sum of the absolute linear-scale powers in all bands. The linear-scale band power can be calculated from the log-scale band power thusly: linear-scale band power = 10^ (log-scale band power).
</p><p>Therefore, the relative band powers can be calculated as percentages of linear-scale band powers in each band. For example:
</p><p><code class=" prettyprinted" style=""><span class="pln">alpha_relative </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="lit">10</span><span class="pun">^</span><span class="pln">alpha_absolute </span><span class="pun">/</span><span class="pln"> </span><span class="pun">(</span><span class="lit">10</span><span class="pun">^</span><span class="pln">alpha_absolute </span><span class="pun">+</span><span class="pln"> </span><span class="lit">10</span><span class="pun">^</span><span class="pln">beta_absolute </span><span class="pun">+</span><span class="pln"> </span><span class="lit">10</span><span class="pun">^</span><span class="pln">delta_absolute </span><span class="pun">+</span><span class="pln"> </span><span class="lit">10</span><span class="pun">^</span><span class="pln">gamma_absolute </span><span class="pun">+</span><span class="pln"> </span><span class="lit">10</span><span class="pun">^</span><span class="pln">theta_absolute</span><span class="pun">))</span></code>
</p></div>
</div>
<div>
<p></p><div>The resulting value is between 0 and 1. However, the value will never be 0 or 1.</div>
<div></div>
<div></div>
</div>
<p></p><div>These values are emitted at 10Hz.</div>
<div></div>
</div>
<div>
<table id="tablepress-relative_band_powers" class="tablepress tablepress-id-relative_band_powers">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Paths</td><td class="column-2">/muse/elements/delta_relative<br>
/muse/elements/theta_relative<br>
/muse/elements/alpha_relative<br>
/muse/elements/beta_relative<br>
/muse/elements/gamma_relative</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Units</td><td class="column-2">Bels (B)</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Datatype</td><td class="column-2">floats</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Transmission frequency</td><td class="column-2">10 Hz</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">MuseIO OSC Data Format</td><td class="column-2">Four channels (electrode sites) for each band power: ffff</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Frequency Ranges*</td><td class="column-2">
<table id="tablepress-relative_band_power_frequency_ranges" class="tablepress tablepress-id-relative_band_power_frequency_ranges">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Name</td><td class="column-2">Frequency Range</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-2 even">
<td class="column-1">delta_relative</td><td class="column-2">1-4Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-3 odd">
<td class="column-1">theta_relative</td><td class="column-2">4-8Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-4 even">
<td class="column-1">alpha_relative</td><td class="column-2">7.5-13Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-5 odd">
<td class="column-1">beta_relative</td><td class="column-2">13-30Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
<tr class="row-6 even">
<td class="column-1">gamma_relative</td><td class="column-2">30-44Hz</td><td class="column-3"></td><td class="column-4"></td><td class="column-5"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
* The boundaries of the frequency ranges are inclusive of the end values. Where 2 ranges overlap, a frequency in the overlapping area counts in both ranges.
<p>
</p><div><b>&nbsp;</b></div>
<div>
<div>
<h3><a name="TOC-Band-Power-Session-Scores"></a></h3>
<h3><span id="Band_Power_Session_Scores"><b>Band Power Session Scores</b></span></h3>
<div>The band session score is computed by comparing the current value of a band power to its history. This current value is mapped to a score between 0 and 1 using a linear function that returns 0 if the current value is equal to or below the 10th percentile of the distribution of band powers, and returns 1 if it’s equal to or above the 90th percentile. Linear scoring between 0 and 1 is done for any value between these two percentiles.<br>
<p>
</p><p>Be advised that these scores are based on recent history and it will take a few seconds before having a stable distribution to score the power against. The estimated distribution is continuously updated as long as the headband is on the head. However, every time it’s updated, the newest values are weighted to have more importance than the historical values. This means that eventually old values will not be present anymore in the estimated distribution. The half-life of the estimated distribution at any given point is around 10 s.
</p><p>The score will start being calculated as soon as the SDK has been started and the headband has established a good connection with the skin. Whenever the headset loses connection with the head (as determined by the DRL/REF contact quality) the estimated distributions are reset. This means that when the headband is removed, the session data from any previous user will be cleared.
</p></div>
<div></div>
<div>
<div>
<table id="tablepress-museio_band_power_session_scores" class="tablepress tablepress-id-museio_band_power_session_scores">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Paths</td><td class="column-2">/muse/elements/delta_session_score<br>
/muse/elements/theta_session_score<br>
/muse/elements/alpha_session_score<br>
/muse/elements/beta_session_score<br>
/muse/elements/gamma_session_score</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Units</td><td class="column-2">Unitless</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Datatype</td><td class="column-2">floats</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Transmission frequency</td><td class="column-2">10 Hz</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">MuseIO OSC Data Format</td><td class="column-2">Four channels (electrode sites) for each band power: ffff</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Frequency Ranges*</td><td class="column-2">
<table id="tablepress-band_power_scores_frequency_ranges" class="tablepress tablepress-id-band_power_scores_frequency_ranges">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">Name</td><td class="column-2">Frequency Range</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Delta Session Score</td><td class="column-2">1-4Hz</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Theta Session Score</td><td class="column-2">4-8Hz</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Alpha Session Score</td><td class="column-2">7.5-13Hz</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Beta Session Score</td><td class="column-2">13-30Hz</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Gamma Session Score</td><td class="column-2">30-44Hz</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
* The boundaries of the frequency ranges are inclusive of the end values. Where 2 ranges overlap, a frequency in the overlapping area counts in both ranges.
<p>
</p></div>
</div>
<div></div>
</div>
<h3><a name="TOC-Headband-Status"></a></h3>
<h3></h3>
</div>
<h2><span id="Headband_Status"><b>Headband Status</b></span></h2>
<div class="toc-step-content">
<div>These values can be used to determine if Muse is on the head properly and getting good contact.&nbsp;These values are emitted at 10Hz.</div>
<div></div>
<div>
<h3><span id="Headband_On_Touching_Forehead"><b>Headband On / Touching Forehead</b></span></h3>
</div>
<div>A boolean value, 1 represents that Muse is on the head correctly.</div>
<div></div>
<div>
<table id="tablepress-museio_touching_forehead" class="tablepress tablepress-id-museio_touching_forehead">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Path</td><td class="column-2">/muse/elements/touching_forehead</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">int</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Transmission frequency</td><td class="column-2">10Hz</td>
</tr>
</tbody>
</table>
</div>
<div><b><code class=" prettyprinted" style=""><span class="pln">&nbsp;</span></code></b></div>
<div>
<h3><span id="Headband_Status_Indicator_Horseshoe"><b>Headband Status Indicator / Horseshoe</b></span></h3>
</div>
<div><b><code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">elements</span><span class="pun">/</span><span class="pln">horseshoe ffff</span></code></b></div>
Status indicator for each channel (think of the Muse status indicator that looks like a horseshoe).
1 = good, 2 = ok, &gt;=3 bad
<div>
<div>
<table id="tablepress-museio_horseshoe" class="tablepress tablepress-id-museio_horseshoe">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Path</td><td class="column-2">/muse/elements/horseshoe</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">4 floats, 1 per channel</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Transmission frequency</td><td class="column-2">10Hz</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Range</td><td class="column-2">1 = Good<br>
2 = OK<br>
3 = Bad</td>
</tr>
</tbody>
</table>
</div>
<h3><span id="Strict_Headband_Status_Indicator"><b>Strict Headband Status Indicator</b></span></h3>
<b>
<code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">elements</span><span class="pun">/</span><span class="pln">is_good iiii</span></code></b>
</div>
<div></div>
<div>
<div>
<table id="tablepress-museio_is_good" class="tablepress tablepress-id-museio_is_good">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Path</td><td class="column-2">/muse/elements/is_good</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">4 ints, 1 per channel</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Transmission frequency</td><td class="column-2">10Hz</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Range</td><td class="column-2">0 = Bad<br>
1 = Good</td>
</tr>
</tbody>
</table>
</div>
</div>
Strict data quality indicator for each channel, 0= bad, 1 = good.
<div><b>&nbsp;</b></div>
<h3><a name="TOC-Muscle-Movement"></a></h3>
</div>
<h2><span id="Muscle_Movement">Muscle Movement</span></h2>
<div class="toc-step-content">
<h3><span id="Blinks"><b>Blinks</b></span></h3>
<div>These are emitted at 10Hz.</div>
<div></div>
<div><b><code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">elements</span><span class="pun">/</span><span class="pln">blink i</span></code></b></div>
A boolean value, 1 represents a blink was detected.
<div>
<table id="tablepress-museio_blink" class="tablepress tablepress-id-museio_blink">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Path</td><td class="column-2">/muse/elements/blink</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">Boolean</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Transmission Frequency</td><td class="column-2">10Hz</td>
</tr>
<tr class="row-4 even">
<td class="column-1">MuseIO Data Format</td><td class="column-2">i</td>
</tr>
<tr class="row-5 odd">
<td class="column-1"></td><td class="column-2"></td>
</tr>
</tbody>
</table>
</div>
&nbsp;
<div>
<h3><span id="Jaw_Clenches"><b>Jaw Clenches</b></span></h3>
</div>
<div><b> <code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">elements</span><span class="pun">/</span><span class="pln">jaw_clench i</span></code></b></div>
<div>A boolean value, 1 represents a jaw clench was detected.</div>
<div></div>
<div>
<div>
<table id="tablepress-museio_jaw_clench" class="tablepress tablepress-id-museio_jaw_clench">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Path</td><td class="column-2">/muse/elements/jaw_clench</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">int</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Transmission Frequency</td><td class="column-2">10Hz</td>
</tr>
</tbody>
</table>
</div>
<div>
<h3><a name="TOC-Experimental"></a></h3>
<h3></h3>
</div>
</div>
</div>
<p></p><div>
<h2><span id="Experimental">Experimental</span></h2>
<div class="toc-step-content">
<p></p><div class="admonition-warning"><b> WARNING: The paths in this section are highly experimental and can change with each release – they may even disappear entirely!&nbsp;</b></div><p></p>
<p>These are high level values that can be used in applications where you don’t care about building your own algorithms and want to use something that will work out of the box.
</p><p>Note that it will take approximately 1 minute with Muse on the head before these values will start producing something relevant.&nbsp;These values are emitted at 10Hz.&nbsp;Each channel is scored independently for alpha/gamma for mellow/concentration, and the average of the two channels is taken every time. If there is bad data, the previous score is used, but there is always an average of channels.
</p><p></p><div>
<h3><span id="Concentration"><b>Concentration</b></span></h3>
</div>
<p></p><div class="admonition-warning"><b> WARNING: This data stream is highly experimental and can change with each release – it may even disappear entirely!&nbsp;</b></div>
<p><b><code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">elements</span><span class="pun">/</span><span class="pln">experimental</span><span class="pun">/</span><span class="pln">concentration f</span></code></b>
</p><p>This is based on gamma,&nbsp;but with additional processing to make it more reflective of the user’s experience.
</p><p>This value goes up when you are focusing on something particular, thinking about something with intensity,&nbsp;concentrating on something, waiting in expectation for something to happen, trying to solve a problem, or working your intellectual mind.
</p><p>Warning: If you tense up your muscles, it can confuse this measure in that this value may go up when you do that.
</p><p>The concentration score is 1 when your attention is directed at something very particular and with high intensity. The dynamics of the score (i.e. the range and the variations) haven’t been tuned since it is an experimental release. The transitions between high concentration and low concentration are usually abrupt, so the score is currently more of a “yes/no” type score instead of a gradient from 0-1.
&nbsp;
</p><table id="tablepress-museio_concentration" class="tablepress tablepress-id-museio_concentration">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Path</td><td class="column-2">/muse/elements/experimental/concentration</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">float</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Units</td><td class="column-2">unitless (score)</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Transmission Frequency</td><td class="column-2">10Hz</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Range</td><td class="column-2">0.0 - 1.0</td>
</tr>
</tbody>
</table>
<div>
<p></p><h3><span id="Mellow"><b>Mellow</b></span></h3>
<p></p><div class="admonition-warning"><b> WARNING: This data stream is highly experimental and can change with each release – it may even disappear entirely!&nbsp;</b></div>
<p><b><code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">elements</span><span class="pun">/</span><span class="pln">experimental</span><span class="pun">/</span><span class="pln">mellow f</span></code></b>
</p><p>This is based on alpha,&nbsp;but with additional processing to make it more reflective of the user’s experience.
</p><p>This value goes up when you are relaxing, letting go of judgement, letting go of trying to control things, letting go of attachment to outcome, not thinking about anything with a goal, or being without an active task.&nbsp;&nbsp;You are not engaged in strenuous mental processing <i>but still alert to your senses</i>.&nbsp;A ready, waiting state.
</p><p>
</p><table id="tablepress-museio_mellow" class="tablepress tablepress-id-museio_mellow">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO Path</td><td class="column-2">/muse/elements/experimental/mellow</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">float</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Units</td><td class="column-2">unitless (score)</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Transmission Frequency</td><td class="column-2">10Hz</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Range</td><td class="column-2">0.0 - 1.0</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p></p><h2><span id="BatteryData"><a name="TOC-Battery-Paths"></a>Battery&nbsp;Data</span></h2>
<div class="toc-step-content">
<p></p><div>Battery info is emitted every 10 seconds(0.1 Hz).</div>
<table id="tablepress-museio_battery" class="tablepress tablepress-id-museio_battery">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Path</td><td class="column-2">/muse/batt</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">4 ints</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Data format</td><td class="column-2">[State of charge, Fuel gauge battery voltage, ADC battery voltage, Temperature]</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Units</td><td class="column-2">
<table id="tablepress-museio_battery_units" class="tablepress tablepress-id-museio_battery_units">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">State of Charge</td><td class="column-2">Fuel Gauge Battery Voltage</td><td class="column-3">ADC Battery Voltage</td><td class="column-4">Temperature</td>
</tr>
<tr class="row-2 even">
<td class="column-1">%/100 - hundredths of percents</td><td class="column-2">mV</td><td class="column-3">mV</td><td class="column-4">C</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Range</td><td class="column-2">
<table id="tablepress-museio_battery_ranges" class="tablepress tablepress-id-museio_battery_ranges">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">State of Charge</td><td class="column-2">Fuel Gauge Battery Voltage</td><td class="column-3">ADC Battery Voltage</td><td class="column-4">Temperature</td>
</tr>
<tr class="row-2 even">
<td class="column-1">0 to 10000</td><td class="column-2">3000 to 4200 mV</td><td class="column-3">3200 to 4200 mV</td><td class="column-4">-40 to +125C</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Transmission frequency</td><td class="column-2">0.1Hz</td>
</tr>
</tbody>
</table>
</div>
<p></p><h2><span id="DRLRefData"><a name="TOC-DRL-Ref-Path"></a>DRL/Ref&nbsp;Data</span></h2>
<div class="toc-step-content">
<div>
<p>The Driven-Right-Leg (DRL) circuit has been used for about 50 years to reduce common-mode noise in biopotential amplifiers in applications that range from stationary equipment powered from the wall to battery-powered ambulatory monitors, and for systems that use gelled, dry, textile, and capacitive electrodes. The Driven Right Leg<span style="font-size: small;">&nbsp;circuit is used to eliminate common-mode noise by actively&nbsp;</span>cancelling<span style="font-size: small;">&nbsp;it.&nbsp;</span>
</p><div></div>
<div>The reference signal is the one all other EEG values are derived from and is maintained around 1.65V. The DRL is driving the reference through the skin and adjusts the output based on noise fed back from the reference. If the headband is off the head the reference signal is not driven and the difference between the two values is significant, if on the head the difference is small.</div>
<div>
<table id="tablepress-museio_drl_ref" class="tablepress tablepress-id-museio_drl_ref">
<tbody class="row-hover">
<tr class="row-1 odd">
<td class="column-1">MuseIO OSC Path</td><td class="column-2">/muse/drlref</td>
</tr>
<tr class="row-2 even">
<td class="column-1">Datatype</td><td class="column-2">2 floats</td>
</tr>
<tr class="row-3 odd">
<td class="column-1">Data format</td><td class="column-2">[DRL voltage, REF voltage]</td>
</tr>
<tr class="row-4 even">
<td class="column-1">Units</td><td class="column-2">uV</td>
</tr>
<tr class="row-5 odd">
<td class="column-1">Range</td><td class="column-2">0 to 3300000</td>
</tr>
<tr class="row-6 even">
<td class="column-1">Sampling frequency</td><td class="column-2">Same as EEG, depending on preset</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p></p><h2><span id="Configuration">Configuration</span></h2>
<div class="toc-step-content">
<p>The config data is emitted from MuseIO as one big string, formatted like JSON (i.e. key-value pairs). This maps to the <a href="https://web.archive.org/web/20181105231756/https://sites.google.com/a/interaxon.ca/muse-developer-site/data-files">Muse protocol buffer file format</a>. An example of the config message payload might look like this:
</p><p><code class=" prettyprinted" style=""><span class="str">'{"drlref_conversion_factor": 3225.806396484375, "acc_sample_frequency_hz": 50, "battery_percent_remaining": 2, "eeg_downsample": 16, "notch_frequency_hz": 60, "eeg_locations": [45, 2, 4, 55], "eeg_units": 2, "eeg_output_frequency_hz": 220, "eeg_conversion_factor": 1.6449803113937378, "eeg_channel_layout": "TP9 FP1 FP2 TP10 ", "acc_data_enab led": true, "eeg_sample_frequency_hz": 3520, "mac_addr": "000666A06A4E", "preset": "14", "drlref_sample_frequency_hz": 10, "serial_number": "1160-XBYF-6A4E", "filters_enabled": true, "batt ery_millivolts": 3498, "acc_units": 2, "battery_data_enabled": true, "afe_gain": 1961.0, "compression_enabled": true, "eeg_channel_count": 4, "error_data_enabled": true, "acc_conversion_fa ctor": 3.9062561988830566, "eeg_samples_bitwidth": 10, "drlref_data_enabled": true}'</span><span class="pln"> </span></code>
</p><p>See below for a description of each field:
</p><p></p><h3><span id="Global_Configuration">Global Configuration</span></h3>
<p><code class=" prettyprinted" style=""><span class="pln">mac_addr</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="str">"012345678912"</span></code>
The MAC address of the Muse in use.
</p><p><code class=" prettyprinted" style=""><span class="pln">serial_number</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="str">"1070-YRTD-2A4D"</span></code>
The serial number of the Muse in use.
</p><p><code class=" prettyprinted" style=""><span class="pln">preset</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="str">"14"</span></code>
The current preset.
</p><p></p><h3><span id="Network_protocol">Network protocol</span></h3>
<code class=" prettyprinted" style=""><span class="pln">compression_enabled</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">0</span></code>
Set to 1 if compression is on. If compression is on, then quantization messages will be emitted.
<p></p><h3><span id="EEG_Data_Configuration">EEG Data Configuration</span></h3>
<p><code class=" prettyprinted" style=""><span class="pln">filters_enabled</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">0</span></code>
Set to 1 if the 50Hz or 60Hz filter is enabled.
</p><p><code class=" prettyprinted" style=""><span class="pln">notch_frequency_hz</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">60</span></code>
Which frequency is being filtered, either 50Hz or 60Hz.
</p><p><code class=" prettyprinted" style=""><span class="pln">eeg_sample_frequency_hz</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">12000</span></code>
The base sampling frequency before downsampling and filtering.
</p><p><code class=" prettyprinted" style=""><span class="pln">eeg_output_frequency_hz</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">500</span></code>
The speed of EEG data being sent from Muse in Hz.
</p><p><code class=" prettyprinted" style=""><span class="pln">eeg_channel_count</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">4</span></code>
How many channels are being sampled.
</p><p><code class=" prettyprinted" style=""><span class="pln">eeg_samples_bitwidth</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">0</span></code>
Number of bits per sample.
</p><p><code class=" prettyprinted" style=""><span class="pln">eeg_channel_layout</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="str">"TP9 FP1 FP2 TP10"</span></code>
Layout of the channels emitted, using the <a href="https://web.archive.org/web/20181105231756/http://en.wikipedia.org/wiki/10-20_system_(EEG)" target="_blank" rel="nofollow">10-20 system</a>.
</p><p><code class=" prettyprinted" style=""><span class="pln">eeg_downsample</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">24</span></code>
Number of input samples per output sample. The <b><i>eeg_output_frequency</i></b> is equal to <b><i>eeg_sample_frequency&nbsp;/ eeg_downsample</i></b>.
</p><p><code class=" prettyprinted" style=""><span class="pln">afe_gain</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">float</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">1961</span></code>
Analog front end gain.
</p><p></p><h3><span id="DRLREF_Configuration">DRLREF Configuration</span></h3>
<p><code class=" prettyprinted" style=""><span class="pln">drlref_data_enabled</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">bool</span></code>
Whether DRL and REF data is enabled or not.
</p><p><code class=" prettyprinted" style=""><span class="pln">drlref_conversion_factor</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">float</span></code>
</p><p><code class=" prettyprinted" style=""><span class="pln">drlref_sample_frequency_hz</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span></code>
Number of samples per second for DRL/REF data.
</p><p></p><h3><span id="Accelerometer_Configuration"><a name="TOC-Accelerometer-Data"></a><b>Accelerometer Configuration</b></span></h3>
<p><code class=" prettyprinted" style=""><span class="pln">acc_data_enabled</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">1</span></code>
Set to 1 if accelerometer data is enabled.
</p><p><code class=" prettyprinted" style=""><span class="pln">acc_units</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">,</span><span class="pln"> can be </span><span class="str">"raw"</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> </span><span class="str">"gforce"</span></code>
The units of the accelerometer data.
</p><p><code class=" prettyprinted" style=""><span class="pln">acc_sample_frequency_hz</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">30</span></code>
Number of acc samples emitted per second.
</p><p></p><h3><span id="Battery_Configuration"><a name="TOC-Battery-Data"></a><b>Battery Configuration</b></span></h3>
<p><code class=" prettyprinted" style=""><span class="pln">battery_data_enabled</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">1</span></code>
Set to 1 if battery data is enabled. If enabled, it is emitted every 10 seconds.
</p><p><code class=" prettyprinted" style=""><span class="pln">battery_percent_remaining</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">91</span></code>
Percentage of battery remaining.
</p><p><code class=" prettyprinted" style=""><span class="pln">battery_millivolts</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">int</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">4094</span></code>
Number of millivolts remaining in the battery.
</p><p></p><h3><span id="Error_Data_Configuration"><a name="TOC-Error-Data"></a><b>Error Data Configuration</b></span></h3>
<p><code class=" prettyprinted" style=""><span class="pln">error_data_enabled</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">bool</span><span class="pun">,</span><span class="pln"> e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln"> </span><span class="lit">1</span></code>
Whether headset errors will be transmitted or not.
</p></div>
<p></p><h2><span id="Version_Data">Version Data</span></h2>
<div class="toc-step-content">
<p><code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">version</span></code>
This is the version string for the Muse, emitted every 10 seconds, encoded in JSON format like so:
<code class=" prettyprinted" style=""><span class="str">'{"build_number": "56", "firmware_type": "Consumer", "hardware_version": "16.0.0", "firmware_headset_version": "", "protocol_version": "2", "firmware_boot loader_version": "7.6.0"}'</span><span class="pln"> </span></code>
</p></div>
<p></p><h2><span id="Annotation_Data">Annotation Data</span></h2>
<div class="toc-step-content">
<p><b><code class=" prettyprinted" style=""><span class="str">/muse/</span><span class="pln">annotation sssss </span><span class="str">"blink"</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="str">""</span></code></b>
Annotation paths are only used in MuseLab to mark the data with events. For example, when you add a marker from the Markers menu, it will get recorded as an annotation message.
</p><ul>
<li><span style="color: #414b56; font-family: Arial, Verdana, sans-serif;">Position 1: event data</span></li>
<li><span style="color: #414b56; font-family: Arial, Verdana, sans-serif;">Position 2: format,&nbsp;</span>can be: “plain_string”, “json”, “osc”</li>
<li><span style="color: #414b56; font-family: Arial, Verdana, sans-serif;">Position 3: event type</span></li>
<li><span style="color: #414b56; font-family: Arial, Verdana, sans-serif;">Position 4: event id</span></li>
<li><span style="color: #414b56; font-family: Arial, Verdana, sans-serif;">Position 5: parent id</span></li>
</ul>
See the <a href="https://web.archive.org/web/20181105231756/https://sites.google.com/a/interaxon.ca/muse-developer-site/data-files">Muse protocol buffer file</a> for more info. All values after the first one can be empty but you must put empty quotes for an empty field.
</div>
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment