How to Send LSL (Lab Streaming Layer) Signals with Inquisit

Inquisit can send LSL (Lab Streaming Layer) signals to external devices such as EEGs, fMRIs, pidgeon feeders and others. This added functionality simplifies communication with external devices. Moreover, LSL signals can be send from any operating system Inquisit is running on which means that you can now send LSL signals from IOS devices and Androids as well as Windows and Mac devices.

As with previous parallel port triggers, Inquisit allows precise control over the the duration and state of the signals, as well as syncronization of signals with visual and audio stimuli presented on a trial.

Setting up LSL Signals in Inquisit Scripts

In Inquisit's scripting language, LSL port signals are defined and presented much the same way as visual and audio stimuli.
LSL port signals are defined within Inquisit using the port element, which can contain 1 or more values.

For example, the following port stimulus consists of the single number 1:

<port mySignal>
/ port = lsl
/ items = (1)
</port>

The port attribute needs to specify the LSL port.
The items attribute specifies a number value to identify the event associated with this port signal

This port signal can then be presented along with other trial stimuli:

<trial myTrial>
...
/ stimulusTimes = [0 = mySignal, myPicture] // LSL signal '1' is sent out whenever 'myPicture' is presented onscreen
...
</trial>

Testing LSL signals sent by your script with Inquisit

You can test whether your script sends out the appropriate signals using the Inquisit LSL Monitor that comes with Inquisit7 Lab. You can find the tool under menu item 'Tools' in the Inquisit Editor:

Steps to test your script:

Open the Inquisit7 LSL Monitor:

file
file

Start your script on an external device (e.g. ios device) that runs on the same network.

Before your experiment will start, your device will show a message similar to this one:
file
Do not click 'continue' (that may start the experiment without any device receiving the signals).

Press the 'Receive' button on the LSL Monitor

file
The message 'waiting for consumer' should automatically go away (as a consumer is hopefully found) and the experiment can start.

The LSL Monitor should now receive the signals (here: 1) anytime the Inquisit script sends one:

file

Once the experiment ends, stop the 'receiving'.

Note: You may have to tinker with your computer's firewall to allow the Inquisit LSL Monitor to receive the signals.