Skip to content

Use LabStreamingLayer to handle triggers with PsychoPy.

Notifications You must be signed in to change notification settings

kaczmarj/psychopy-lsl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PsychoPy event markers with LabStreamingLayer

This repository demonstrates how to send event markers in PsychoPy with LabStreamingLayer (LSL).

See coregui.md to learn how to receive markers in Coregui with LSL.

Example scripts

  • example_coder.py is a minimal PsychoPy "experiment". Two words alternate on the screen, and a marker is sent whenever a word appears. This was coded manually.
  • example_builder.py behaves in the same way as example_coder.py, but it was created in the builder and uses stimuli and markers defined in example_builder.csv

General steps

  1. Install pylsl (the Python interface of LSL).
  2. Include code in your Python script to send markers.

Install LabStreamingLayer

See the PyPI page.

pip install pylsl

In your PsychoPy code

Refer to pylsl.py for documentation on pylsl functions.

# ...
from pylsl import StreamInfo, StreamOutlet
info = StreamInfo(name='my_stream_name', type='Markers', channel_count=1,
                  channel_format='int32', source_id='uniqueid12345')
# Initialize the stream.
outlet = StreamOutlet(info)
# ...
  • Include markers wherever you need them.
# ...
outlet.push_sample(x=[100])
# ...
  • The example above sends a marker 100. x must be a list with a length equal to channel_count (specified in StreamInfo). It is easiest to use integers as markers.
  • You can also include dynamic marker names (see example script). If you are using a trial loop in PsychoPy, include marker values in a column in the spreadsheet used for the loop. If the column header is "marker", the code would be outlet.push_sample(x=[marker]).

About

Use LabStreamingLayer to handle triggers with PsychoPy.

Topics

Resources

Stars

Watchers

Forks

Languages