Muse Use in Art Installation

Hi folks! I’ve been using the original muse (not muse2) for a few years now at Burning Man as part of an interactive art installation at my camp Mindwerk. The piece involves a blackout dome where folks can stop by and take turns wearing the headpiece which will speak to my software and a Raspberry Pi that turn their brainwaves into a generative sound and light expressive experience.

I just now returned to the software to test it out again only to find that the developer software is no longer supported and muse-io is no longer working with my OS (macOS majave 10.14.x). I used to be able to have the muse talk to my mac.

I’m posting here in hopes that I can receive some guidance as to how to get the project up and running again. Is it possible? What workaround do I have to implement? Do I have to have a computer with an older OS? Should I use an older linux distro instead? etc.

Thanks in advance for any advice offered!
Aric

Muse Monitor runs on Android or iOS devices and can stream out an OSC signal over WiFi which you will be able to read with the Pi.
The OSC streaming format is the same as used by muse-io: https://musemonitor.com/FAQ.php#oscspec
There are some example OSC receivers on my GitHub if you want to roll your own: https://github.com/Enigma644

1 Like

Hi thanks for the response. Unfortunately that is not what I’m looking for. The point of using the Pi is to try and remove the requirement of leaving a mobile device or laptop with the art installation. I’m hoping to find a way to compile the legacy muse-io on the pi and use that. Any thoughts on how I might go about doing that or if that is even possible?

Thanks

If you want to connect to the Muse directly with the Pi, you’d have to write your own code to do that. The Muse protocol is pretty well documented in the Muse LSL lib here: https://github.com/NeuroJS

I’m developing a Muse app on raspberry pi as well, so far it’s working well using python and pygatt. I’ve used the muse-lsl code to start from (which has been great!) but I am not confident that the protocol I’m using is correct. I can connect, setup notifications and the callbacks are working but after awhile the Muse device times-out.

I’ve looked through the forums and docs but have yet to find a definitive source for the actual communication protocol. Can someone point me to where the communication specifications can be found?

I’d be happy to share this code once I have it working.

Hi Debra, Very cool you have it working (even to some degree). I was not able to get it working the python route, nor the Noble.js (node-lsl) route… I’m wondering if it is my version of the headset? Model: MU-01. Not sure if that is the 2016 model mentioned in those libraries or if it is the older 2014 model.

But either way, I’m interested in seeing your code if you are willing to share. I can try it out on my end too to see if I get the same results.

Hi, sorry for the delay, somehow I missed your message.

I’m using the 2016 model. For the python code all of the communication is done via pygatt: https://github.com/peplin/pygatt

For figuring out the connection sequence and data formats the Muse LSL project helped out immensely: https://github.com/alexandrebarachant/muse-lsl/

Axion removed all of the SDK docs from their website but I found a lot of them via archive.org and google’s archive:
https://web.archive.org/web/20170510142048/http://android.choosemuse.com/enumcom_1_1choosemuse_1_1libmuse_1_1_muse_data_packet_type.html#aeeb5b9b1f039dcc1b1980938f5da267e

I’ve made significant progress, here’s a related Facebook post:

Cheers!