Hi everyone,
We are setting up a visual mismatch response / visual MMN ERP experiment in PsychoPy Coder and would appreciate advice on the recommended trigger setup.
Experiment:
We present several types of visual stimuli/conditions and record EEG with a g.tec g.HIamp amplifier and a 64-channel active electrode cap.
Goal:
We would like to record both:
- Condition/stimulus markers from PsychoPy — to know which stimulus type was presented on each trial.
- A screen-onset timing signal — to measure the delay between the software marker sent by PsychoPy/LSL and the actual visual onset on the monitor.
Current setup:
- PsychoPy version: [add version]
- Using: Coder
- Operating system: Windows
- EEG system: g.tec g.HIamp
- Current trigger interface: LSL markers sent from PsychoPy
- We do not currently have a permanent hardware trigger box, and we are trying to understand whether one is necessary for this type of ERP setup.
At the moment, our PsychoPy script creates an LSL marker stream named experiment_markers. It sends integer markers for each face event/condition, for example:
win.callOnFlip(trigger.set, trigger_code)
win.callOnFlip(_capture_onset)
The LSL outlet is implemented with pylsl.StreamOutlet, and each marker is pushed as an int32 sample. We also keep the stream alive by sending zeros continuously in a background thread, because the EEG acquisition pipeline currently expects a continuous LSL stream.
Specific question:
What is the recommended way to send condition/stimulus triggers from PsychoPy to be recorded together with EEG in this kind of visual ERP experiment?
In particular:
- Should PsychoPy send the condition markers using LSL, or would you recommend a different method such as a parallel port or dedicated USB/hardware trigger interface for ERP timing?
- If a hardware trigger box is recommended, what problem does it solve compared with LSL markers, and when is it actually necessary?
- For measuring the delay between the PsychoPy marker and the actual screen update, should the external screen-onset signal usually be recorded as an analog channel, or converted into a digital trigger?
We are not asking for a full experiment implementation, only for best-practice advice and common pitfalls for visual ERP timing with PsychoPy Coder, LSL, Windows, and g.HIamp.
Thank you!