Lab Streaming Layer
Overview
Lab Streaming Layer (LSL) is an open-source networked middleware ecosystem to stream, receive, synchronize, and record neural, physiological, and behavioral data streams acquired from diverse sensor hardware.
See here for a list of supported devices
Can also search for supported devices and apps here
With LSL, SightLab can both receive and send data streams easily to third party EEG and physiological devices and software. See examples in ExampleScripts/LSL_Sample
Note: To use LSL you will need to install the pylsl python library via Tools-Package Manager in the Vizard IDE.
Streaming Into SightLab (Stream Inlet)
SightLab can stream from devices such as EEG (Muse, Brainvision, etc.) directly to your session and add the stream data to the data files via StreamInlet.
See here for a list of supported devices
See the example lsl_sample_receive.py
for how to stream from an external device into SightLab. This also shows how to save the average data to the experiment summary.
Streaming Out of SightLab (Stream Outlet)
Need to visualise VR gaze paths in Acqknowledge, MATLAB or mark events in BrainVision Recorder? SightLab can push its own data as an LSL outlet.. See also below for the more detailed workflow on doing this with Biopac Acqknowledge. For the generic example see the Example Script lsl_sample_stream.py
This could be things such as:Face tracking data
Participant position data
Participant head orientation data
Pupil diameter
Gaze coordinates
Streaming from SightLab to Biopac Acqknowledge
Acqknowledge now supports LSL streaming natively, making SightLab ↔ Biopac setup painless.
See examples for streaming a modifiable stream of any data, or specific examples for Pupil Diameter and mouse coordinates in the ExampleScripts/LSL_Sample
folder
In Acqknowledge go to Display - Preferences- Hardware- Data Acquisition and enable "LSL"
Click the “+” Button to add hardware to show
Restart Acqknowledge and create a new experiment
Needs to be a new graph (go to File- New)
Hardware dropdown and choose LSL stream
When you restart Acqknowledge you can refresh your stream (or just start the SightLab script using something like the Pupil Diameter streaming example)
You can then click "Refresh" at the start stream
Troubleshooting
When you first launch Acqknowledge if you see "No Stream Available"
You should be able to start whatever stream you’re expecting to find, and press the Refresh button to find it. That will cause Acq to look for streams again.
If the outlet gets closed for any reason and Acq notices (e.g., here, I quit the program that was generating SimpleStream and then pressed the Start button in a graph window that was connected to SimpleStream)
You can go to “Manage Hardware Connections” to look for new streams to connect to. You can get there from the main hardware menu, which might be “MP160”, “MP200”, or in the case of a graph window receiving an LSL stream, it will have the name of the stream.