The configuration file
QDSpy.ini defines the environment in which stimuli
are presented. Many of these parameters are hardware-specific (e.g. whether or
not a lightcrafter or an digital I/O card is used) and need to be adjusted
and/or optimized to the setup/experimental situation.
QDSpy.ini file triggers QDSpy to generate a new file from
standard values during the next program start.
This is an exemplary configuration, with brief explanations interspersed:
This section describes how the stimuli are presented on the current system (geometry-wise).
[Stage] float_refresh_frequency_hz = 60.0
This parameter is mainly to inform QDSpy what refresh rate is expected but the program does not try to change adjust the refresh rate of the system; it has to be consistent with the that set for the graphics card.
int_screen_width_pix = 640 int_screen_height_pix = 480 int_center_offs_x_pix = 0 int_center_offs_y_pix = 0 float_center_rotation_deg = 0.0
These lines give the size of the presentation window, If either of the
dimensions is zero, QDSpy generates a full-screen window occupying that screen.
int_center_offs_y_pix provide the offset
of the stimulus screen centre,
float_center_rotation_deg the rotation
angle. The latter three parameters are for alignment purposes and also be
changed via the GUI.
float_scale_x_um_per_pix = 0.5 float_scale_y_um_per_pix = 0.5
Stimulus scaling in micrometers per pixel.
int_screen_index = 0
The index of the display that shows the full-screen stimulus. Note that Windows counts the displays starting from 1, here the index starts with 0.
bool_disablefullscrcmd = True
Internal parameter with respect to OpenGL implementation. Ignore and do not change.
int_window_left_pix = 20 int_window_top_pix = 20
Top left position of the non-full screen stimulus window, in pixels.
[Overlay] section contains parameters for a dual-display configuration.
[Overlay] bool_use_screen_overlay = False
Screen overlay mode is active if
True and full-screen mode selected
[Stage] section (see above).
int_screen_index_gui = 0
The index of the screen with the GUI.
int_screen1_2_width_pix = 1824 int_screen1_2_height_pix = 1140
The width and height of the combined overlay display, e.g. when using two lightcrafters with native resolution, use the values above.
int_x_offset_screen1_pix = 0 int_y_offset_screen1_pix = 0
Any offset of the screen #1 (the left screen/lightcrafter) relative to the top/right corner of the GUI display.
int_x_offset_screen2_center_pix = 0 int_y_offset_screen2_center_pix = 0
Any offset between screen #1 and screen #2 (right screen/lightcrafter) centre.
This section contains parameter relevant for stimulus presentation timing.
[Timing] bool_incr_process_prior = True bool_try_forcing_fsync = True bool_disable_garbage_collector = False float_gui_time_out = 5.0
These parameters influence how reliably the stimulus timing is, i.e. with
respect to frame drops. Please do not change these parameters unless you know
what you are doing. A few dropped frames at the beginning of a stimulus (e.g.
when a movie is being loaded) are normal, but later during the stimulus
no presentation frame drops should occur). Finally,
(in seconds), deals with potential problems when loading very large stimuli.
bool_track_timing = True bool_warn_when_frames_dropped = True float_frame_dur_threshold_ms = 5.0
By default, QDSpy records the timing and warns if frames where dropped. By
float_frame_dur_threshold_ms, the warning behaviour can be adapted
(e.g. to report only grave delays between two frames).
bool_use_digitalio = False str_digitalio_board_type = PCIDIO24 int_digitalio_board_num = 0 int_digitalio_device_num = 6 str_digitalio_port_out = A str_digitalio_port_in = CLO str_digitalio_port_user_out = B int_digitalio_pin_markerout = 2 int_digitalio_pin_triggerin = 0 str_digitalio_pin_userout1 = 3, drug, 1 str_digitalio_pin_userout2 = 4, n/a, 0
These parameters need to be adjusted when a digital I/O board is used to provide a stimulus synchronisation signal (“trigger”). See Digital I/O for details.
Since v0.76 a new parameter
str_digitalio_board_type is available. It can
currently assume one of three values:
the trigger to the usual digital I/O board from Measurement Computing, whereas
Arduino aktivates the support for Arduino-type boards.
Since v0.77 new parameters are defined:
defines the port for user-defined TTL output signals. The parameteters
how the two user pins are to be used: They need to contain a comma separated
list of pin number (0 to 7), a string for the GUI button (e.g. “puff”), and
a number that indicates if the pin action is inverted (=1) or not (=0).
The Arduino support is experimental:
only tested with an Arduino UNO
baud rate of 115200
trigger out via pin 13
int_digitalio_board_nummust be equal the number of the COM port the Arduino is connected to.
useer pins are not yet implemented
[Paths] str_shader = .\Shader\ str_stimuli = .\Stimuli\ str_application = .\ str_logfiles = .\Logs\
These parameters determine some relative paths (relative to the QDSpy folder) used by the program.
This section deals with parameters that influence how colours and intensities are presented.
[Display] bool_use_lightcrafter = False str_led_names = orange, UV1, blue1, UV2, green, blue2 str_led_filter_peak_wavelengths = 610, 380, 450, 400, 590, 450 str_led_device_indices = 1, 1, 1, 0, 0, 0 str_led_indices = 0, 1, 2, 0, 1, 2 str_led_default_currents = 15, 16, 17, 18, 19, 20 str_led_max_currents = 100, 100, 100, 100, 100, 100 str_led_qtcolor = darkYellow, darkMagenta, darkBlue, darkMagenta, darkGreen, darkBlue
These parameters are only relevant if a lightcrafter is used as display device.
Two lightcrafters can be controlled (see
[Overlay] section), therefore
each of the parameters contains a list of up to 6 values (= two devices with
three LEDs each). When only one lightcrafter is used, three values per parameter
LED names (
str_led_names), peak wavelengths
str_led_filter_peak_wavelengths) as well as name of colour
str_led_qtcolor) are just for the representation of the respective
str_led_device_indices (0 or 1) and
(0, 1, or 2) indicate which LED in which device is described.
str_led_default_currents define the LED currents (0..255) at QDSpy start
str_led_max_currents the current setting limit for the GUI (0..255).
bool_allowgammalut = False str_usergammalutfilename = defaultGammaLUT
bool_markershowonscreen = True str_markerrgba = 255,127,127,255 str_antimarkerrgba = 0,0,0,255
Defines if the synchronisation marker (“trigger”) is displayed in the lower
right corner of the stimulus screen and what color (and alpha value) it has.
str_antimarkerrgba defines the colour of the “anti” marker, which
“blanks” the marker area on the screen when the marker is not displayed. This
prevents large stimuli from interacting with the marker display.
bool_use_control_window = False float_control_window_scale = 0.2
Defines if the stimulus should be displayed in an additional window next to the GUI. Note that depending on your graphics card and how well the refresh rates between the different displays match, turning on this feature can hamper with stimulus presentation performance (e.g. frame drops).
[Tweaking] bool_use3dtextures = 0 bool_recordstim = 0 str_window_geometry_cam = 0, 30, 300, 20 bool_allow_camera = False
These parameters influence performance or are experimental. Please do not change these parameters unless you know what you are doing.