Skip to content

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.

Was this page helpful?