Hey,
We are trying to transfer live data from muselab to matlab, and cant figure out how to do it yet.
Anyone did it before and can help us?
Thanks
Data from muselab to matlab
- Peter Gamma
- Posts: 180
- Joined: Sat Jun 29, 2019 11:02 am
- Location: Switzerland
- Contact:
Re: Data from muselab to matlab
I am also in trouble with a live stream from the Mind Monitor to an application. Since Matlab supporter Adam Danz deleted all my Matlab questions for reasons I cannot follow, I will use Python instead of Matlab. What I miss is a bridge from Mind Monitor OSC to Python OSC to the Influx Database client for Python. With the InfluxDB, you can do what you want with your data in Python. Is this path not of general interest to access sensor data from the Mind Monitor app? I am promoting this path as much as I can.
Last edited by Peter Gamma on Thu Nov 24, 2022 3:12 pm, edited 1 time in total.
Re: Data from muselab to matlab
I'm not super familiar with Python, but here's a simple script to get you started.
This will just print the RAW EEG to the screen, but from here you can do anything now that you have the data:
Here's a slightly more complex example that will start and stop recording to a CSV file when you send markers 1 and 2:
This will just print the RAW EEG to the screen, but from here you can do anything now that you have the data:
Code: Select all
"""
Mind Monitor - Minimal EEG OSC Receiver
Coded: James Clutterbuck (2021)
Requires: pip install python-osc
"""
from datetime import datetime
from pythonosc import dispatcher
from pythonosc import osc_server
ip = "0.0.0.0"
port = 5000
def eeg_handler(address: str,*args):
dateTimeObj = datetime.now()
printStr = dateTimeObj.strftime("%Y-%m-%d %H:%M:%S.%f")
for arg in args:
printStr += ","+str(arg)
print(printStr)
if __name__ == "__main__":
dispatcher = dispatcher.Dispatcher()
dispatcher.map("/muse/eeg", eeg_handler)
server = osc_server.ThreadingOSCUDPServer((ip, port), dispatcher)
print("Listening on UDP port "+str(port))
server.serve_forever()
Code: Select all
"""
Mind Monitor - EEG OSC Receiver
Coded: James Clutterbuck (2021)
Requires: pip install python-osc
"""
from datetime import datetime
from pythonosc import dispatcher
from pythonosc import osc_server
ip = "0.0.0.0"
port = 5000
filePath = 'OSC-Python-Recording.csv'
recording = False
f = open (filePath,'w+')
f.write('TimeStamp,RAW_TP9,RAW_AF7,RAW_AF8,RAW_TP10,AUX,Marker\n')
def eeg_handler(address: str,*args):
global recording
if recording:
dateTimeObj = datetime.now()
timestampStr = dateTimeObj.strftime("%Y-%m-%d %H:%M:%S.%f")
f.write(timestampStr)
for arg in args:
f.write(","+str(arg))
f.write("\n")
def marker_handler(address: str,i):
global recording
dateTimeObj = datetime.now()
timestampStr = dateTimeObj.strftime("%Y-%m-%d %H:%M:%S.%f")
markerNum = address[-1]
f.write(timestampStr+",,,,/Marker/"+markerNum+"\n")
if (markerNum=="1"):
recording = True
print("Recording Started.")
if (markerNum=="2"):
f.close()
server.shutdown()
print("Recording Stopped.")
if __name__ == "__main__":
dispatcher = dispatcher.Dispatcher()
dispatcher.map("/muse/eeg", eeg_handler)
dispatcher.map("/Marker/*", marker_handler)
server = osc_server.ThreadingOSCUDPServer((ip, port), dispatcher)
print("Listening on UDP port "+str(port)+"\nSend Marker 1 to Start recording and Marker 2 to Stop Recording.")
server.serve_forever()
- Peter Gamma
- Posts: 180
- Joined: Sat Jun 29, 2019 11:02 am
- Location: Switzerland
- Contact:
Re: Data from muselab to matlab
Thanks, James for these wonderful scripts.