Experiment is a root object in the EventIDE logic that accommodates an experiment scenario, stimulus materials and user code. The experiment object has a set of editable
that represent global settings, such as a screen resolution or a default background color. The experiment object and accommodated content are saved together in a single file recognizable by ".eve" extension.
Creating a new experiment in EventIDE resembles creating a new document in other programs. Open the application menu and press 'New' item. Then you can chose whether you want to create a blank experiment or pick up one of templates in the Template gallery. A blank experiment contains one layer with a single
. Then you should build a scenario, load stimulus materials, write a code and, finally, run a designed task with participants. When you open one of experiment templates, you often need only to customize it for your task.
When you repeatedly use the same paradigm over many studies, it mifght be a good idea to create your own reusable experiment template. Start with designing a base experiment that is easy to customize. It can be incomplete and preliminary. Then go the Abstract ribbon tab and mark the experiment as template and optionally define its category, e.g. My Templates. Finally, save the experiment in any location under the main program folder (the Demos subfolder is recommended). The experiment template will now appear in the Template gallery in the Application menu.
that shows a summary of the currently loaded experiment. When you open it, you can access and edit the experiment properties in the property grid on the right. The experiment properties are explained in the next section.
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
EXECUTION CONTROL |
Stop Key | Defines a keyboard button for aborting the experiment run. The default stop button is Escape. | | System.Windows.Forms.Keys |
Pause Key | Defines a keyboard button for pausing the experiment run. The default pause button is Pause. | | System.Windows.Forms.Keys |
Abort Run | Runtime commands that aborts the current experiment run at any moment, as the command is called in snippets. The command result is the same as pressing of the stop button, but the command can be invoked in code. | Boolean | Irrevocably aborts the experiment run |
Is Paused | Defines whether the experiment run is paused. Note that pausing does not stop the core timer in the experiment. | | Boolean | Pauses or resumes the experiment run |
DISPLAY SETTINGS |
Display Mode | Opens a window where you can define a display mode (pixel resolution, color depth and refresh mode) of the stimulus display. In that window you can also enter physical measures (display size and distance) that automate pixel-visual degrees conversion on the current experimental setup. | |
Default Background | Defines the default background color of all visual events in the experiment.
For example, if an event has the transparent background by design, the default color will be used to fill the background at runtime. | | stColor |
Touchscreen Mode | Defines whether mouse coordinates are collected only while the left mouse button is pressed. This mode is handy when participants are requested to maintain pressing on a touchscreen, while moving a finger. The mode allows the ROI elements to work with a touchscreen as with an eye-tracker. | | Boolean | |
Deep Color | Defines if the experiment is run in the Deep Color graphics mode, which allows 10bits per color channel (in contrast to the conventional 8-bit standard). The Deep Color mode is slower than 8bits modes and must be supported by a graphic card. The mode can be utilized only by special visual elements that can produce the deep color renderings, e.g. 10bit Canvas element. The rest of visual content in the experiment is not affected by this property, save for possible disrupting of the alpha channel. Use this mode only in experiments with deep color scenes. | | Boolean |
Visual Composition | Defines whether off-screen surfaces of visual events are composed with CPU (software) or with GPU (hardware). The hardware composition mode is recommended for complex visual scenes, whereas the software mode is general safer and can be fastest for simple scenes. If you opt for speed, try both modes and check the composition and rendering times of events. | | Option List |
DATA COLLECTION |
Report | The property provides an interface to Report- a default runtime mechanism for data storage in EventIDE. When you write a string value to the Report properly in code snippets, the value is added as a new line into Report. The collected strings can be viewed after an experiment is finished and also exported to into a text or Excel file. | | String |
Report's column delimiters | Defines what characters are regarded as column delimiters, when Report is exported into a formatted file, e.g. Excel. You can defines several characters, typing them in a sequence. By default, semicolon, comma and tab characters are regarded as delimiters. | | String |
Auto Export File | Defines the name of a text file, into which the collected Report data is automatically exported on the end of experiment run. The auto export is done only, when the property value is not empty. The file name can be defined in snippets at runtime. | String |
PERFORMANCE |
Exclusive Input | Defines whether the system input devices (e.g. keyboard or mouse) are accessed in the exclusive mode. If true, their input latencies can be shorter but all input is blocked for other programs. | | Boolean |
Library Caching | Defines whether some library materials, such as images, are cached in the memory prior to the experiment run. If true, visual rendering can significantly speed up by the cost of higher memory consumption. | | Boolean |
Ahead Lock | Defines the duration of locking time interval, in ms, before onset of any event. During the lock interval all activities, like snippet calls, are blocked for sake of better timing accuracy of the event onset. The default value is 5ms, which is roughly equal to 1/2 of one monitor frame at 100Hz. The property can be modified at runtime. | System.UInt64 | |
VSync | Defines whether the onset of the visual events is synchronized with a start of the monitor's refresh pass. If the value is true, the visual changes are smooth and flicker free. However, the actual event durations may be longer (never shorter) than the requested duration. This property does not affect timing of the non-visual events. | | Boolean |
Realtime Priority | Defines whether the program requests the "realtime" priority at runtime, for sake of best timing accuracy. The recommended value is true for the multi-core computers and false for the single-core computers. | | Boolean |
Status Screen Priority | Defines a running priority of the Status Screen at runtime. Higher priority makes the status screen’s updates more frequent but may reduce overall timing accuracy in the experiment. | | Option List |
Proxy Caching | Defines whether the proxy variables are cached inside of code snippets. When true (default mode), changes to the proxy variables are applied only after the exit from a snippet. If false, the changes are applied immediately, as they are met in snippet code. Disabling the proxy caching may lead to more frequent proxy updates and, consequently, to a significant growth of snippets' execution times. The caching mode does not affect re-rendering after visual changes, because it is always performed after a snippet call. | | Boolean |
RUNTIME STATUS |
Screen Clone | Returns an auto-updating ImageSource .NET object that translates a clone of the runtime stimulus screen. The clone image renders only events that have the Screen Cloning property set to true (it's false by default). The ImageSource object can be used for data binding on the Status Screen. For example, a XAML image element can be declared as: '<Image Width='800' Height='600' Source='{Binding ScreenClone}/>' . Then it will show a clone of the presentation screen in a 800x600 viewport on the Status screen. | | System.Windows.Media.ImageSource |
ScreenShot | Whenever you want to make a screenshot of the current stimulus screen, assign a string containing a full file name to this property in snippets. The screnshot will be saved into the target file after the end of a snippet call. The format of the image file is defined by the extension of the file name: .bmp, .png or .jpg. | | String |
Mouse Radar | Returns a screen point that represents the most recent system mouse coordinate. The property value is refreshed on every Control Loop step. Writing to the Radar property moves the mouse cursor into a new position. | clPoint |
Subevent Index | Returns an index of the currently active event on the root layer. The property can be used for monitoring the event flow. This property also allows to control the event flow manually, bypassing the flow routes: when a new event index is assigned to it, the corresponding event will be immediately activated on the root layer. | Int32 |
TIMING STATISTICS |
Actual Duration | Returns the total duration of the experiment (ms) after the experiment is completed | | clTime |
Elapsed Time | Returns the time passed since the start of the experiment (ms). This property can be used as a highly accurate timer in snippets. | | clTime |
Control Loop Interval | Returns continuously re-measured time interval (ms) between two consecutive step of the experiment's control loop. If there are no going computational load or snippet calls in the experiment the interval is close to zero. | | clTime |
Snippet Times | Returns the statistics of executions times (ms) for the root snippets (ones shown in the top row in the snippet panel). Statistics of a single snippet can be accessed by snippet's name, for example: 'clTime Time=(clTime) SnippetTimes"After Onset";' The snippet mush contain code to be included into the list. | | Dictionary <String,clTime> |