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_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 asexample_coder.py
, but it was created in the builder and uses stimuli and markers defined inexample_builder.csv
- Install
pylsl
(the Python interface of LSL). - Include code in your Python script to send markers.
See the PyPI page.
pip install pylsl
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 tochannel_count
(specified inStreamInfo
). 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])
.