Giter Site home page Giter Site logo

Comments (38)

Venryx avatar Venryx commented on May 6, 2024 4

@PeterGamma , in the video he clearly says that this only works with the Muse1 because the SDK has been discontinued and does not work with Muse2.

It's worth noting that both BlueMuse and muse-js work for the newer models, Muse 2 and Muse S. (I have a Muse S myself. Not sure about the earlier models, but I'm assuming it works with those too.)

from labstreaminglayer.

trathborne avatar trathborne commented on May 6, 2024 2

I was able to download the SDK by circumventing the redirect by using a browser that didn't obey:

elinks https://sites.google.com/a/interaxon.ca/muse-developer-site/download

from labstreaminglayer.

trathborne avatar trathborne commented on May 6, 2024 2

I was also able to clone the entire site with:

wget --mirror --no-parent --convert-links --html-extension https://sites.google.com/a/interaxon.ca/muse-developer-site/

from labstreaminglayer.

jasonjsnell avatar jasonjsnell commented on May 6, 2024 2

I created a Swift-based iOS / Mac framework for the Muse and Muse 2, including PPG data. It still needs improvements, but I'm successfully using it in my projects. Hope it can be useful to other iOS / Mac developers, or for people building frameworks on other platforms:

https://github.com/jasonjsnell/XvMuse

from labstreaminglayer.

cboulay avatar cboulay commented on May 6, 2024 1

Thanks for the info and the updates.

I just read your posts over and mind-monitor. A few clarifications are needed.

First, though LSL was developed at SCCN, it was not Arnaud Delorme who developed LSL, nor is he one of its primary maintainers. He is responsible for much of EEGLAB, but whether the Muse works with EEGLAB is besides the point. EEGLAB is meant for offline. Maybe you are confusing BCILAB and EEGLAB. But here again, BCILAB isn't really Arno's product.

Second, the documentation recently moved from the Wiki to ReadTheDocs. The fact that you can't find something on the Wiki is expected. During the transition, I guess the link to the matlab_example_with_muse was broken. Sorry about that. The document is still in the repo, but for some reason it isn't rendering. I'll try and fix that.

Nevertheless, you're right that this example will only work as long as the Muse SDK is available and it supports streaming over LSL.

from labstreaminglayer.

Venryx avatar Venryx commented on May 6, 2024 1

I've since found out about this library: https://github.com/urish/muse-js

You can stream the raw eeg, accelerometer, and gyro data to webpages without need for any software other than your browser!
Demo here: https://github.com/kylemath/EEGEdu

Works great for web, Electron, and NodeJS apps. (I use it every day in a custom Electron app)

If you need it for some other language/context, you should be able to use the NodeJS approach, and just route the data to your main program using Sockets or subprocess input/output streams. (there must be a way to accomplish the stream-access in other languages natively, but I don't know the details, so for now just recommend using the muse-js library) [EDIT: You can also just use the muse-js-based muse-lsl)

Makes me wonder why BlueMuse (another route for direct access from PCs) requires a security certificate installation, when muse-js accomplishes the same thing with nothing more than standard browser api's (web-bluetooth).

from labstreaminglayer.

trmullen avatar trmullen commented on May 6, 2024 1

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024 1

You are right, a community can do more than an individual. The Muse seem to work now with the Rasperri PI 3b and LSL:

alexandrebarachant/muse-lsl#140

Me personally, the OpenBCI Cyton board seems to be an interesting alternative to the Muse. OpenBCI already has LSL support, and it also has MQTT support over the WIFI shield. Unfortunately, the WIFI shield is currently not available from OpenBCI, and it is not clear, when the new version comes out. Furthermore, there are issues with the WIFI shield, such as WiFi Shield packet loss and cyclical noise spikes. Nevertheless if OpenBCI MQTT works without issues sooner or later, this path becomes interesting in combination with Home Assistant and InfluxDB. Home Assistant already has 1800 integrations, and I saw that more and more physiological sensors are available in Home Assistant, for instance there is Home Assistant support for Garmin watches for certain parameters. OpenBCI LSL is stable, and I guess OpenBCI MQTT sooner or later too, which is a good basis for community projects.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

Connecting to LSL streams on Matlab: an example with the Muse

  1. Step 1
    Next to the already mentioned issue in step 1 that the Muse SDK is not available from
    http://developer.choosemuse.com anymore, there are further issues concerning the same example.

  2. Step 2
    Pair your computer with your Muse headset:
    James Clutterbuck, developer of the Muse Monitor writes:
    «The Muse 2 is almost impossible to pair on PC. I've tried many different Bluetooth USB devices and none of them work. It was similar with the 2016 Muse. Only the 2014 Muse is easy to pair on PC. This is why I only made Muse Monitor for Android/iOS. «
    https://musemonitor.com/forums/viewtopic.php?f=15&t=749

  3. Step 2: connect to your Muse using muse-io
    James Clutterbuck, developer of the Muse Monitor writes:
    «Muse-io hasn't worked since 2016 anyway as it only worked with the 2014 Muse «
    https://musemonitor.com/forums/viewtopic.php?f=15&t=749&start=10

Possible solution to solve all of these issues:

  1. Connect the Muse to the Muse Monitor application via bluetooth

  2. The smartphone has to be in the same Wifi network as the PC which runs Matlab

  3. The Muse Monitor App has an option to OSC (Open Sound Control Network Protocol) data streaming
    OSC Specification which paramaters Muse Monitor can stream can be seen here:
    https://musemonitor.com/FAQ.php#oscspec

  4. Joren, computer scientist in the field of Music Informatics
    https://0110.be/About
    wrote a manual how to receive OSC in a MatLab:
    https://0110.be/posts/OSC_in_Matlab_on_Windows%2C_Linux_and_Mac_OS_X_using_Java

  5. Modify the example Matlab OSC client Script in step 2 of the Manual to restore the example.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

I complained in the Muse headband forum

http://forum.choosemuse.com/

about the fact, that the lack of the possibility to download the Muse SDK would destroy the LSL interface of the Swartz Center for Computational Neuroscience.

Now, the Muse SDK is available for download again, but only for chosen people:

from: https://choosemuse.com/development/

«If you are hosting a hackathon, an academic or institutional research project, or working on an educational application for neuroscience or neurotech, we will continue to offer support for your projects to the best of our ability (including the legacy SDK for Muse 2016). Please reach out to our R&D team at [email protected]

So the previous example for the Muse headband for Matlab should work again.

Be aware that there are different models of the Muse headband, and that there are problems with some models to pair them over bluetooth to a desktop PC.

For those models, the following instruction should work:

1. Connect the Muse to the Muse Monitor application via bluetooth
2. The smartphone has to be in the same Wifi network as the PC which runs Matlab
3. The Muse Monitor App has an option to OSC (Open Sound Control Network Protocol) data   
   streaming

OSC Specification which paramaters Muse Monitor can stream can be seen here:
https://musemonitor.com/FAQ.php#oscspec

4. Joren, computer scientist in the field of Music Informatics

https://0110.be/About

wrote a manual how to receive OSC in a MatLab:
https://0110.be/posts/OSC_in_Matlab_on_Windows%2C_Linux_and_Mac_OS_X_using_Java

5. Modify the example Matlab OSC client Script in step 2 of the Manual to restore the example.

The Muse Monitor application is is now called Mind Monitor application.

For a discussion about Lab Streaming Layer (LSL), Muse headband and Mind Monitor, see also the following thread in the Mind Monitor forum:

https://mind-monitor.com/forums/viewtopic.php?f=15&t=840&sid=71048d0bba3b36ca4857877dc67f7054

from labstreaminglayer.

cboulay avatar cboulay commented on May 6, 2024

It's rendering properly now: https://labstreaminglayer.readthedocs.io/info/matlab_example_with_muse.html

I'm going to close this issue because there's nothing to be done on the LSL dev team side.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

Thank you, Chadwick, that's great!

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

Thank you, Chadwick, for the information about EEGLAB, BCILAB and Arnauld Delorme. There was a confusion on my side.

The Muse SDK is there again, the link to the matlab_example_with_muse is rendering properly, the issue is closed.

But there are some other problems with the Labstreaminglayer support for the InteraXon Muse:

  1. The Example use with Matlab works only with MU-01 - Muse - Released 2014 – Bluetooth. Newer models of the Muse cannot be paired by bluetooth to a desktop PC, so it does not work.

  2. The SDK cannot be downloaded from InteraXon directly, we have to send a E-Mail there to get it. The SDK can only obtained for chosen people and chosen applications.

Labstreaminglayer support of InteraXon Muse only for a Muse model released 2014 and only for chosen people. Is this a satisfying solution for Labstreaminglayer?

https://mind-monitor.com/forums/viewtopic.php?f=15&t=840&start=10

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

The documentation here is misleading:

https://labstreaminglayer.readthedocs.io/info/supported_devices.html

For readers of the documentation, there is the expectation that all models of InteraXon Muse
has LSL support for all kind of people for all kind of projects.

But in reality there is only LSL support for the Muse model released 2014 and only for chosen people and chosen projects.

from labstreaminglayer.

tstenner avatar tstenner commented on May 6, 2024

Is this a satisfying solution for Labstreaminglayer?

Not really, but it's frustrating for users. There are varying levels of vendor support, e.g. BrainProducts officially don't support their SDK and therefore use with LSL but in the past I've been very happy with requests for technical details. In the end we can't do much except document the vendor support and let people vote with their wallets.

from labstreaminglayer.

highcat avatar highcat commented on May 6, 2024

I wasn't able to download via these links, but got file names of SDK archives, and found them here
https://github.com/AmbrosIA-Institute/ambrosia-institute.github.io

from labstreaminglayer.

Venryx avatar Venryx commented on May 6, 2024

@trathborne The download links on your mirror site don't appear to work for me; it just shows some XML text about Access Denied: https://i.imgur.com/J8Gl1yK.png

<Error>
  <Code>AccessDenied</Code>
  <Message>Access denied.</Message>
  <Details>
  Anonymous caller does not have storage.objects.get access to ix_downloads/libmuse-android-1.3.0/libmuse-android_1.3.0-windows-installer.exe.
  </Details>
</Error>

Also, are you sure the versions on the mirror site are the latest ones?

The site says "Download LibMuse v1.3.0 for developing on Android", however, I have a local copy of the LibMuse for Android from 2016, and it says that it is version 6.0.0:

Did they reset the versioning? Or is my local copy from 2016, in fact, newer than the version you were able to find? (if it is, feel free to message and I'll send a copy)

from labstreaminglayer.

trathborne avatar trathborne commented on May 6, 2024

The libraries are indeed not on that site. They are on storage.googleapis.com and I was only interested in the Linux library, so that's the only one I tested:

http://storage.googleapis.com/ix_downloads/musesdk-3.4.1/musesdk-3.4.1-linux-installer.run

I have no idea about any other files, but I sure appreciate @highcat 's link to the github repo!

from labstreaminglayer.

Datagrdn avatar Datagrdn commented on May 6, 2024

@highcat I've noticed a few places where the installers are available, but upon downloading the files don't open. Does anyone have a workaround?

@trathborne did you run into this issue as well?

I'm interested in getting it running on macOS

from labstreaminglayer.

highcat avatar highcat commented on May 6, 2024

@Datagrdn at a glance the installers for Mac OS contain 32-bit executables. They won't run on Catalina since it has dropped 32-bit support. Bad news.

Maybe there's a way to unpack them on older Mac OS, and then use manually.
I.e.

  1. Install on Mac OS version prior to Catalina.
  2. Find the files installed (framework for XCode or just library + headers)
  3. Check if they have 64-bit support in case of Mac OS
  4. Save the files somewhere else, and try to compile them on Catalina.

image

from labstreaminglayer.

highcat avatar highcat commented on May 6, 2024

Some Android libs also here. Maybe they will work for 1st version of the Muse headset.
https://github.com/hoanghonn/brainmuser/tree/master/brainmuser/libs

from labstreaminglayer.

highcat avatar highcat commented on May 6, 2024

Also, these repos may contain Muse protocol implementation, for Muse 2016 and Muse 2
https://github.com/alexandrebarachant/muse-lsl
https://github.com/kowalej/BlueMuse

from labstreaminglayer.

trathborne avatar trathborne commented on May 6, 2024

@Datagrdn I only tried to make it work on Linux and I got it working well enough. I use muse-io to stream OSC to a Python program which munges the data into WebSocket messages to my PixelBlaze. Pretty sure this flow will just keep working!

from labstreaminglayer.

cboulay avatar cboulay commented on May 6, 2024

I suppose it is possible to connect the Muse headband directly to a PC with Arnos software and stream data in real time, no Muse SDK needed.

@PeterGamma , in the video he clearly says that this only works with the Muse1 because the SDK has been discontinued and does not work with Muse2.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

@Chadwick Boulay I know. For the Muse 2, there is the Muse LSL from Alexandre Barachant:

https://github.com/alexandrebarachant/muse-lsl

Alexandre Barachant: who does not want to become the supporter of Interaxons Muse2 as far as LSL is concerned.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

As an alternative to the Muse headband, Texas Instruments has the ADS1299 Performance Demonstration Kit with 8 channel EEG which is officially supported by Texas Instturments and has an excellent documentation:

https://www.ti.com/tool/ADS1299EEGFE-PDK

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

The Muse SDK is available once more from Interaxon, but only for a selected group of people. If you don t belong to this group, or if you use a Muse 2, you are out of luck with official support from Interaxon.

Interaxon, the manufacturer of the Muse headband recommends to use Muse Direct as a replacement for the missing Muse SDK for real time streaming. But this service is a unknown to me personally, there is a IOS App, but no Android App, and I don t know anything about the Muse Direct online service.

Me personally, I would rather choose another device when buying a new one for real time streaming EEG sensor data.

There is the ADS1299 Performance Demonstration Kit from Texas instruments as I mentioned before:

http://www.ti.com/tool/ADS1299EEGFE-PDK

It is only 199 USD for 8 Channel EEG. With a headband and EEG sensors it has about the same price as a Muse headband and has more channels.

There is a short instructional video from Texas Instruments to use the board for ECG:

https://www.youtube.com/watch?v=_LY4hHeG-Hs

The board has a manual which is very detailed and has 64 pages:

https://www.ti.com/lit/pdf/slau443

There are two papers on researchgate.net which tested to board for 8 channels and 32 channels EEG:

For a 8 channels EEG Data Aquisition System:

https://www.researchgate.net/publication/325635924_Design_of_EEG_Data_Acquisition_System_based_on_Raspberry_Pi_3_for_Acute_Ischemic_Stroke_Identification

For 32 channels EEG Data Aquisition System :

https://www.researchgate.net/publication/332321992_Development_of_Electroencephalography_EEG_Data_Acquisition_System_based_on_FPGA_PYNQ

These papers conclude that the ADS1299 Performance Demonstration Kit from Texas instruments have a relatively high accuracy, which is comparable to a Neurostyle NS-EEG-D1-System.

The ADS1299 Performance Demonstration Kit has an evaluation software for Microsoft Windows which is descibed as easy-to-use, and it can interface to MATLAB. But I could not find any information whether there is LabStreamingLayer support fot this board.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

Here I found a Muse Direct solution for Muse 2 from Michal Michalski, experienced professional software developer:

https://buyuk-dev.com/signal-processing/eeg/muse/osc/2020/03/24/muse2-eeg-osc-streaming.html

But there is only an app for IOS for Muse Direct, and it goes over the Muse Cloud service which is 4 USD/ month.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

The issue with the missing Muse SDK is closed, the Muse SDK is available once more from Interaxon, but only for a selected group of people. As an alternative to the Muse headband, I suggested the ADS1299 EEG kit from Texas instruments. There is a discussion about the safety of the TI ADS1299 EEG kit. The kit can be used only battery powered connected to a laptop which is purely battery powered. The safety of this setup is discussed in the EEVblog:

https://www.eevblog.com/forum/testgear/how-to-solve-the-ti-ads1299-eeg-demo-kit-is-not-save-for-humans-problem/

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

Great work, jasonjsnell. Unfortunately, I don t use a iOS / Mac. And instead of PPG data from the Muse 2 I use a Polar OH1 optical heart rate sensor, since it has ECG accuracy. I thought about letting go the Muse headband completely. The Muse headband can be used 24 * 7 with some modifications. But an OpenBCI based headband with 8 channels is more comfortable to wear, especially during sleep.

from labstreaminglayer.

jasonjsnell avatar jasonjsnell commented on May 6, 2024

Thanks Peter, I'll take a look at the Polar sensor.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

You are welcome, Jason. You can use the Polar OH1 also for respiratory rate estimation in Matlab. I wrote a comment in Matlab regarding this subject:

https://www.mathworks.com/matlabcentral/fileexchange/55289-respiratory-rate-estimation

and you can use the Polar OH1 for calculation of the heart rate variability for instance in Python. But it needs some coding.

from labstreaminglayer.

jasonjsnell avatar jasonjsnell commented on May 6, 2024

Great, thank you!

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

You are welcome. I have just seen that the Python toolbox for Heart Rate Variability (HRV) was devoped by Pedro Gomes:

https://pyhrv.readthedocs.io/en/latest/

who publishes with Hugo Placido da Silva from BITalino - Low Cost Biomedical Toolkit. Therefore, I suppose it is a research grade toolbox. I don t know whether the PPG heart rate signal from the Muse 2 is research grade, this has not yet been investigated.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

The LabStreamingInterface of the Muse1 headband depends on the Muse SDK:

https://labstreaminglayer.readthedocs.io/info/matlab_example_with_muse.html

The Muse SDK is available again from Interaxon on request, but only for a selected group of people. This has been discussed here in this thread.

The Mind Monitor Android app is compatible with all the Muse headband models. Unfortunately, the app has no LabStreamingLayer interface either:

https://mind-monitor.com/forums/viewtopic.php?f=15&t=840&start=30

but only an OSC interface. There are now Python OSC Examples available for the Mind Monitor app:

https://mind-monitor.com/forums/viewtopic.php?f=15&t=1600

which could eventually be used to connect to LabStreamingLayer.

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

Thanks, Tim. A missing OSC to LSL bridge is really an issue. The Mind Monitor app has OSC support, the Muse Direct app has OSC support. OSC connected the Muse headband to MuseLab. But MuseLab was as far as I know part of the Muse SDK, and the Muse SDK is gone for all people.

Arnaud Delorme s Neurofeedbacklab would be a great alternative to MuseLab. Neurofeedbacklab requires an LSL interface. An example which connects the Muse Direct app OSC stream or the Mind Monitor app OSC stream to the Neurofeedbacklab app would be helpful:

gisogrimm/osc2lsl#1

from labstreaminglayer.

PeterGamma avatar PeterGamma commented on May 6, 2024

The Muse headband is attractive for mobile EEG applications. Unfortunately, the Muse SDK is only available for research institutions, etc. And the setup with the Muse SDK only works with Muse 1, and not Muse 2.

There is the Muse LSL from Alexandre Barachand, PhD for the Muse 2:

https://github.com/alexandrebarachant/muse-lsl

The Rasperri PI is attractive as a mobile EEG data aquisition platform. Flavio Frohlich, Associate Professor of Psychiatry, Cell Biology & Physiology, and Biomedical Engineering, Department of Psychiatry, Carolina Center for Neurostimulation UNC Hospitals – Chapel Hill reported issues with the Muse LSL and Rasperri PI 4:

alexandrebarachant/muse-lsl#140

http://www.flaviofrohlich.org/thoughts/collecting-eeg-signals-with-a-raspberry-pi-and-a-muse-2-headset

The Muse Headband is the worldwide best selling EEG device, and it is affordable. It is a pity that there is no longer an official support from Interaxon for LSL for everyone. As far as I know, the Muse headband should work now for mobile applications with LSL and the Rasperri PI 4, altough I did not test it.

I am looking for a mobile EEG setup, which can stream EEG sensor data into InfluxDB and visualize it in Grafana, which also can connect to Arnaud Delormes Neurofeedbacklab or BCILAB over LSL. I found that an OpenBCI module with a Wifi shield which supports MQTT is suitable for this purpose:

https://petergamma.org/blog/page/7/

OpenBCI also has Lab Streaming Layer support:

https://docs.openbci.com/docs/06Software/02-CompatibleThirdPartySoftware/LSL

For mobile applications, I will use an OpenBCI module with a wifi shield instead of a Muse Headband, until there is a confirmed and working mobile setup for the Muse Headband.

from labstreaminglayer.

NeptuneApps10 avatar NeptuneApps10 commented on May 6, 2024

Hi, I am new to the eeg technology and I find it really hard too to find a reliable EEG headband with a stable SDK... Muse seems to prefer developing their own tech and not sharing their code. What about the NeuroSky MindWave Mobile 2 (just purchased one and pairing is not easy on IOS) and the Macrotellect PRO V2 ? It would be great if we could all work with the same headband to share our research and progress !

from labstreaminglayer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.