- Windows 10 app to stream data from Muse EEG headsets via LSL (Lab Streaming Layer).
- Auto detects Muse headsets and provides a visual interface to open and close data streams.
- Can stream from multiple Muses simultaneously.
- Shows latest timestamp received and the current sample rate for each stream.
All commands will launch BlueMuse if it isn't already open.
Start BlueMuse
start bluemuse:
Start streaming first Muse found:
start bluemuse://start?streamfirst=true
Start streaming specific Muse(s) - by MAC address or device name:
start bluemuse://start?addresses={MAC1 or Name1},{MAC2 or Name2},{MAC3 or Name3}....
Start streaming all Muses:
start bluemuse://start?startall
Stop streaming specific Muse(s) - by MAC address or device name:
start bluemuse://stop?addresses={MAC1 or Name1},{MAC2 or Name2},{MAC3 or Name3},....
Stop streaming all Muses:
start bluemuse://stop?stopall
Close the program:
start bluemuse://shutdown
"startall" and "stopall" are not meant for launch, they are used when BlueMuse is already running.
Requires Windows 10 with Fall 2017 Creators Update - Version 10.0.15063 aka Windows 10 (1703).
Download latest version from the /Dist folder and unzip, then follow one of the methods below.
- Navigate to the unzipped app folder and run the PowerShell command:
.\InstallBlueMuse.ps1
- Follow the prompts - the script should automatically install the security certificate, all dependencies, and the BlueMuse app.
-
Double click BlueMuse_xxx.cer then click "Install Certificate".
-
Select current user or local machine depending on preference and click "Next".
-
Select "Place all certificates in the following store".
-
Press "Browse...".
-
Select install for Local Machine.
-
Select "Trusted Root Certification Authorities" and click "OK".
-
Click "Next" and click "Finish" to install certificate.
-
Open Dependencies folder and appropriate folder for your machine architecture.
-
Double click and install Microsoft.NET.Native.Framework.1.7 and Microsoft.NET.Native.Runtime.1.7.
-
Finally, double click and install BlueMuse_xxx.appxbundle.
- 1.0.8.0
- Increased timestamp accuracy by using a more precise API on Windows.
- Added logging. See Troubleshooting -> Logs section for details.
- LSLBridge won't falsely show stream if GATT problems occurred.
- 1.0.7.0
- Added new install script
InstallBlueMuse.ps1
. - Refreshed the install certificate which was about to expire.
- Added new install script
- 1.0.6.0 - stable.
- Changed timestamp format to Unix epoch seconds format.
- Improved UI - it is now re-sizable and more compact (better for low resolution screens).
- Added version number to main screen.
- 1.0.5.0 - stable.
- Corrected timestamps timezone issue (timestamps were meant to be GMT based, but were actually in EST). Timestamps formatted as Unix epoch milliseconds.
- 1.0.4.0 - stable.
- LSLBridge is auto hidden if no streams active. BlueMuse also polls to keep LSL bridge open if not currently streaming, therefore LSLBridge has proper auto closing mechanism that won't prematurely trigger. This process may seem strange and convoluted but it appears to be the only good method to manage this trusted process with the current Windows UWP API.
- Bad timestamps.
- 1.0.3.0 - unstable.
- Issues with LSLBridge closing.
- Bad timestamps.
- Requires Windows 10 with Fall 2017 Creators Update - Version 10.0.15063 aka Windows 10 (1703).
- Application requires side loading a Win32 application which does the LSL streaming. This is because UWP apps run in a restricted environment with network isolation. This restricts LSL streams from being seen across the local network if launched from the UWP app. To get around this issue, the data is shuffled through to the "LSL Bridge", a Win32 application which can run in a normal environment. Note: when you first start a stream, you may need to add a firewall exception for LSLBridge.exe.
- Uses 32-bit binaries for LSL. Acquired from: ftp://sccn.ucsd.edu/pub/software/LSL/SDK/liblsl-All-Languages-1.11.zip
- liblsl32.dll was dependent on MSVCP90.dll and MSVCR90.dll, both of which I included in the project since these may not be available in the System32 folder on your machine (they weren't on mine).
- The full dependencies of liblsl32.dll are: KERNEL32.dll, WINMM.dll, MSVCP90.dll, WS2_32.dll, MSWSOCK.dll, and MSVCR90.dll. Generated with dumpbin utility.
- Ensure Muse is removed from "Bluetooth & other devices" list in control panel.
- Reset Muse - hold down power button until device turns off then back on.
- Make sure Muse is within reasonable range of your computer. Some built in Bluetooth antennas are not very powerful.
The main app (BlueMuse) and LSL Bridge both write log files for various events and exceptions. These may help in troubleshooting issues. The files can be found within AppData:
BlueMuse:
C:\Users{Username}\AppData\Local\Packages\07220b98-ffa5-4000-9f7c-e168a00899a6...\LocalState\Logs\BlueMuse-Log-{Timestamp}.log
LSLBridge:
C:\Users{Username}\AppData\Local\Packages\07220b98-ffa5-4000-9f7c-e168a00899a6...\LocalCache\Local\Locgs\LSLBridge-Log-{Timestamp}.log
See https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-enhance