top of page

Responses Registration

In this article:


Accurate and flexible response registration is a fundamental requirement in most psychological and behavioral experiments. EventIDE provides a broad range of input elements for capturing participant responses and external signals from various devices. These elements support standard input hardware (e.g. keyboards, joysticks), custom laboratory equipment (e.g. EEG, MRI, eye-trackers), as well as communication interfaces (e.g. TCP, LPT, COM).

Input Registration Logic in EventIDE

In EventIDE, input elements operate within the time frame of their parent event. This behavior allows precise control over the time window in which input is detected—making it easy to define response intervals aligned with stimulus presentation.


If you require continuous listening across multiple events, you can place the input element in a parent event and organize the rest of your experiment within sub-events (via sub-layers). This approach ensures that the element remains active throughout the trial sequence. Some input elements also operate at the global experiment level by design.

Input Elements in EventIDE

Below is a summary of input elements available in EventIDE, grouped by their functional categories:


Input Registration

Element

Description

Button

Detects button presses/releases on devices supported by the DirectInput API (e.g. keyboard, mouse, joystick, gamepads).

HID Input

Communicates with USB HID devices (e.g. response boxes, keyboards). Reads button states and analogue axes.

MIDI Input

Reads input from MIDI devices, such as digital pianos connected via USB or MIDI port.

ROI (Region of Interest)

Defines screen regions and tracks cursor or gaze position in relation to them. Useful for mouse, joystick, or eye-tracking tasks.

Voice Recorder

Captures voice input and stores it as WAV files.

Speech Listener

Performs real-time speech recognition from a microphone. Converts spoken input into text for classification.

Key Logger

Logs all keypress and key release events during an event into a text stream.

Cedrus XID

Supports Cedrus XID-compatible devices such as RB response pads, StimTracker, and SV-1 voice key.

Ink Canvas

Captures drawing or handwriting strokes from pen or touch input for analysis.


Mouse, Touch, and Joystick Trackers

Element

Description

Mouse Tracker

Records continuous mouse movement trajectories on the stimulus screen.

Joystick Tracker

Converts joystick input into positional data. Can be calibrated to stimulus screen coordinates.

Multi-Touch Tracker

Captures multi-touch gestures from supported touchscreens.

ELO Touch Tracker

Specialized tracker for ELO Touch displays (requires touch mode set to “Click on release”).

PQLab Tracker

Tracker element for PQLab touchscreen systems.

Secondary PQLab Tracker

Allows tracking from a second PQLab screen connected to the same PC.


Communication

Element

Description

TCP/UDP Listener

Listens to incoming messages over TCP or UDP network ports. Currently receive-only.

UDP Port

Allows bidirectional data transfer via UDP protocol. Useful for sending sync markers.

LPT Port

Interfaces with the parallel port for sending/receiving digital signals. Used for trigger synchronization.

COM Port

Sends/receives data through a serial port (COM).

Advantech Port

Supports I/O via Advantech DAQ digital ports (e.g. 8-bit trigger signals).

FTDI BitBanger

Generates digital pulses (e.g. TTL) by toggling FTDI board pins.

LSL Streamer

Forwards selected EventIDE signals into a LSL stream.

LSL Event Marker

Sends time-stamped event markers to other systems via the Lab Streaming Layer (LSL).

MRI Trigger

Detects scan-start signals from MRI machines.

MC Analog/Digital Ports

Interfaces with Measurement Computing DAQ boards for analogue/digital signal I/O.

PupilLabs Companion

Communicates with PupilLabs mobile app to trigger recording and synchronize markers.

NI DAQ Elements

Multiple elements support National Instruments DAQ cards:

NI Counter Pulse

Sends a single pulse or a pulse train through an output counter channel on a National Instruments DAQ card. Useful for precise hardware triggering or timed pulse delivery.

NI Analog Port

Outputs continuous or discrete analogue voltage signals through an analogue channel on an NI DAQ card. Commonly used to control or synchronize external hardware. (Note: does not support analogue input reading.)

NI Change Detector

Detects and responds to digital input changes (e.g. rising/falling edges) on NI digital ports. Useful for registering asynchronous events such as button presses or TTL triggers.

NI Digital Line

Provides fine-grained access to individual digital lines on a digital port. Each line can be independently read or written, enabling precise digital I/O control.

NI Port

Sends and receives digital byte-level signals via entire digital ports on a National Instruments DAQ card. Often used to transmit trigger codes or read multiple binary states simultaneously.


Other Research Hardware

EventIDE also supports input from specialized research equipment via dedicated AddIns:

  • Eye-trackers – Access gaze data and calibration tools. (Pupil Labs, Tobii, EyeLink, etc.)

  • EEG Amplifiers – Read signals and synchronize triggers from EEG devices.

  • Kinect Sensors – Track 3D body and facial data from Microsoft Kinect.

  • Leap Motion – Capture hand and finger tracking data.

  • Xsens Motion Trackers – Integrate full-body motion tracking.

  • Oculus Rift – Monitor headset inputs and triggers.

  • Webcam-based Tracking – For facial expression or webcam eye-tracking.

To enable support for these devices, navigate to Application Menu > AddIn Manager, and activate the relevant AddIns.


For a complete list of supported input registration elements please refer to Element Library.

Using Button Elements

To set up response registration, follow these general steps (demonstrated using the Button element):


Step 1 – Add the Element

  • Insert a Button element into the event during which the response should be detected.

  • Open its Property Panel and configure:

    • Input Device – Select from the connected devices.

    • Triggering Mode – Choose whether to detect button presses or releases.

    • Monitored Button – Specify a particular button, or monitor all.

You may add multiple Button elements for different buttons, or a single one that listens to all inputs.


Step 2 – Detecting the Input


Once the Button element is triggered (i.e. a press/release is detected), it updates its Status Properties and invokes the Triggered snippet, where you can place your response handling code.


Available Status Properties:

Property

Description

Triggering Time

Local event-relative timestamp of the input. Suitable for calculating reaction time.

Triggered Button

Returns the name/ID of the button pressed.

Is Triggered

Boolean: true if any trigger occurred during the event.

Is Down

Boolean: true if the monitored button is currently held down.


You can use Is Triggered property to control experiment flow. For example, assign a proxy variable to Is Triggered property and activate an outgoing flow route when a response is detected:

(IsTriggered == true)

Step 3 – Access in Code

The Triggered snippet is called when an input is detected. Here, you can write custom logic, such as logging response, calculating reaction time, or providing feedback.

// Inside Triggered snippet
ResponseTime = TriggeringTime;
PressedButton = TriggeredButton;

To use this information across the experiment, assign proxy variables to the element’s properties.


Using Other Input Elements

Most input elements follow this pattern:

1.      Select the input device in the element's properties.

2.     Configure detection mode (e.g. signal type, trigger pattern).

3.      Handle the input either via:

  • Status properties (read in snippets).

  • Triggered snippet (code called on input event).

Control experiment flow using proxy variables and route conditions.


bottom of page