Page History: Experiment
Compare Page Revisions
Page Revision: 2012/05/14 23:00
Description
Experiment is a root object in EventIDE logic. Experiment represents a container for scenario structure, stimulus materials and user code. Experiment has its own
properties that act as global design settings, like the screen resolution or default background color. Experiment and all its content is stored in a single file with ".eve" extension.
Creating an experiment
Creating a new experiment in EventIDE is similar to creating a new document in a text editor: just select New command in the File menu. A new experiment always contains one layer with a single event. Then an user can build an scenario, load stimulus material, write a code and, finally, run the experiment.
Accessing experiment properties
HQ, or headquarters, is a control center for any experiment designed with EventIDE. HQ collects and shows the summary information about snippets and elements used across the experiment. HQ also provides an access to the properties of the current experiment. HQ is represented in GUI as a top event layer (with no events) and can be always accessed through the layers panel and the navigation bar.
Snapshots
Snapshot 1
| Snapshot 2 |
Practical Use
When a new experiment is opened there are two main buttons in the top right corner:
HQ and
Experiment. If HQ is clicked, all experiment layers and experiment properties are displayed. When the Experiment button is clicked the main
Events screen is opened (Figure 1) and this is in fact the default view upon creating a new experiment. If one particular event is selected (by clicking on the Event image box in the center of the top panel), the Event's elements window will open on the left, any images connected to this event will display in the center, and the property list will display on the right (Figure 1).
Figure 1: First screen presented to the user upon opening a new experiment in EventIDE.HQ level is the uppermost level outlining the structure of the experiment. Figure 2 shows the HQ window display.
A representation of all the layers of the experiment (squares in the top part Figure 2)
A list of all the elements used in the particular experiment (left side Figure 2)
A sheet for experiment notes (in the central part Figure 2) Researchers can use this sheet as a lab book, is a good tool to order lab notes.
Code Snippets for the experiment (lower part Figure 2). At this Experiment level the snippets are going to get activated whenever the experiment is run.
Specific properties of the experiment (Right panel Figure 2)
Figure 2: Elements displayed when ROOT option is selected.We will focus on these experiment properties that can be modified at HQ level. They are grouped in six categories as can be seen in Figure 3: Display Settings, Runtime, Control, Timing Control and Statistics.
Figure 3: Categories of the properties which can be modified at ROOT level.When Display Settings is expanded (by clicking the arrow - Figure 4) it is possible to modify various settings:
- Grid step changes the size of the visual editing grid.
- Display resolution contains information about the size of the display (in pixels), the physical diaganal size of the monitor (in cms) and the distance from the display of the participant. This information allows EventIDE to accurately calculate visual degrees.
- Frame Rate: Can be adjusted to mach the frame rate of experimental screen in order to synchronize presentation of visual information and eye tracker register.
- Color depth: This refers to the number of bits per pixel. The most typical mode is 32bits per pixel which allows 8bits per RGB value plus 8bits for the alpha channel that controls transparency. Rembember that 8bits allow 2^8=256 RGB values (from 0-255) in standard 24bits bitmaps.
- 10bit Color: If you require more RGB values for better graphics (color and luminance) resolution you can use a 10bit graphic card (e.g. ATI FirePro) which will allow 2^10=1024 RGB values per pixel.
Figure 4: Expanded display settings.The options relating to
Runtime,
Control and
Timing Control are for adjusting the priorities of different functionalities within an experiment. Definitions of this properties are given online in the software, also in banquets can be seen when can they be used on RUNTIME (that is when the experiment is running, so only can be accessed trough the snippets code) DESIGNTIME (when the particular trial is finished).
Defined in Runtime section (Figure 5) there are: Stop Running, Snapshot (Bitmap containing a copy of the experimental screen at each moment of time), Radar (Coordinates of the current positional input on the screen), Radar Tail (Array of coordinates of the recent current positional input on the screen), Radar OK (True if radar coordinates on screen are valid) and Child Index (Activates Child event with a given index).
In Control section (Figure 5) options available are: Preload for resources (Make running faster but consumes more memory), Interrupt key code (in which could be defined the key that will control the interruption of the running experiment at any moment), Default background (which will be the colour adopted by every event in the experimental sequence), Experiment priority, Operator priority and Title (where experiment's name could be defined).
For Timing control is related with the synchronization between the experimental sequence and the monitor refresh rate. Three values can be set here: Ahead Lock (ms) (Time interval that automatically shortens the requested durations of every event in order to get best alignment with the refresh rate of the monitor. Recommended value is such of one frame.), VSynchforevents (True if it is wanted activation for all visual events synchronized with the monitor refresh rate), System real time priority (If this is set to true, the EventIDE process will have real time priority in windows while running the experiment).
Figure 5: Extended runtime, control and timing control.
Last settings option in ROOT level is Statistics (Figure 6). Here we can define Actual duration (ms) (It reports the duration of the last run), Experiment Report String variable is proposed to be used in the code snippets for data logging in the experiment. We have to parameterize it before using in the code, it has to be selected and add a parameter in this property: Report in this example. Might be exported to a text or excel table from main menu), Elapsed time (In ms, is the time passed from the activation of event to), Preparation time (It is the time needed to redraw events and their children), Drawing Time, Running interval (Last interval between two on running calls), Snippets execution times.
Figure 6: Extended statistics. Properties
Experiment properties define global aspects of experimental design and runs, like the display settings and performance optimization. Their values are specific for each experiment and stored in the experiment file. In this way they are different from the EventIDE settings which are specific for each computer and can be shared among different experiments.
Experiment Properties
Name | Description | Attributes | Value Type |
---|
Control |
Stop Key | Defines the keyboard button which press aborts the experiment at runtime. By default, it is Escape button. | D | List |
Background | Defines the base background color of all visual scenes in the experiment. For example, if the transparent background is used in events, the base background color will be used for the back of the screen. | D | clColor |
Perfomance |
Ahead Lock | Defines duration of a locking time interval, in ms, just before switching between two events. During this time all activities, like snippet executions, are blocked to provide highest timing accuracy. The default reasonable value of this property, 10ms, is equal to the duration of one vertical frame on a monitor with refresh rate of 100hz. | D | UInt64 |
Vertical Synch | Defines if activation of events with a visual content is synchronized with a start of the monitor vertical refresh. If the value is true, the visual output will be smoother and flicker free but event durations may be longer (never shorter) than the requested. The property value does not affect timing of non-visual events. | D | Boolean |
Realtime Priority | Defines if the EventIDE process requests the highest, realtime priority for better timing accuracy while running the experiment. The recommended value is true for the multi-core computers and false for the single-core computers. | D | Boolean |
Status Screen Priority | Defines a running priority of the Status Screen at runtime. Higher priority makes status screen's updates more frequent but may reduce timing accuracy in the experiment. | D | List |
Resources Preload | Defines whether the certain library resources, like images, will be pre-loaded into computer memory on each experiment run. If true, the runtime visual rendering can speeds up by the cost of higher memory consumption. | D | Boolean |
Non-exclusive Input | Defines whether input devices (e.g. keyboard or mouse) work in the non-exclusive mode and can be shared with other programs. If the value is false, the faster exclusive mode is used. | D | Boolean |
Display Settings |
Current Settings | Shows the requested display settings: the screen resolution, monitor distance and width, color depth and refresh rate for an experiment run. Notice that the refresh rate is used only for full-screen mode can be automatically adjusted if the requested value is not supported by hardware. | D, Read-only | string |
Modify Settings | Brings a dialog window where all display settings can be changed. | Design-time action |
Deep Color | Defines if the experiment is run in the Deep Color graphics mode that allows 10bits per color channel coding (as opposed to the 8-bit standard). The Deep Color mode is slower and it has to be supported by a graphic card. The mode can be utilized only by designated elements that can produce the deep color graphics. Other visual content in experiment is not affected by enabled Deep Color mode except rendering with alpha (transparency) channel which can be disrupted. Use this mode only in experiments with deep color visual scenes. | D | Boolean |
Runtime |
Child Index | Index of the active child event on its event layer. Setting this property at the runtime will cause immediate activation of the children event with the corresponded index regardless of the predefined event flow. | R* | Int32 |
Radar | The most recent point in screen coordinates that is collected from the positional input provided by mouse. The property value is updated on every OnRunning cycle. Writing to this property at runtime will causes moving a mouse cursor to the provided position. | R | clPoint |
Radar OK | Indicates if the coordinates exposed by the Radar property are inside of the current screen. | R | Boolean |
Abort | Setting this property to true in snippets causes a stop of the current experiment run- the same as after pressing of the stop button. | R, Runtime action | Boolean |
Report | Provides an access to the integrated data collection mechanism. Writing to this properly at runtime automatically causes adding of the written string into a new line of a data file (only one writing per single snippet execution is allowed). The resulting data file can be saved or exported after each experiment run. | R | String |
Snapshot Image | Image that contains the most recent snapshot of the main experiment screen. Can be used on the status screen or be saved into a file. | R, Read-only | ImageSource |
Visual Editor |
Grid Step | Defines a grid step in the visual editor for events. | D | clSize |
Statistics |
Actual Duration | Actual duration of the experiment measured after its run. | D, Read-Only | UInt64 |
Snippets Times | Execution times of experiment snippets in ms. Use the values to determine how fast the snippets are. | R, Read-Only | UInt64[] |
Elapsed Time | The time passed since starts of the experiment run in ms. You can use this property as a global time counter in snippets. | R, Read-Only | UInt64 |
Preparation Time | The time that the experiment needs for offline preparation of all visual scenes in events. | R, Read-Only | UInt64 |
Drawing Time | The time that the experiment needs to send its background visual scene to the video memory. | R, Read-Only | UInt64 |
Running Interval | The measured time interval between two last OnRunning cycles. If there is no work that the experiment does while running, this time interval is close to zero. | R, Read-Only | UInt64 |