Configuration file
Contents
Configuration file¶
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.
Deleting the 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:
Stage¶
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.
Together, int_center_offs_x_pix
and 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¶
The [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
in the [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.
Timing¶
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, float_gui_time_out
(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
changing 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: PCIDIO24
and USB-1024LS
sends
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: str_digitalio_port_user_out
defines the port for user-defined TTL output signals. The parameteters
str_digitalio_pin_userout1
and str_digitalio_pin_userout2
define
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_num
must be equal the number of the COM port the Arduino is connected to.useer pins are not yet implemented
Paths¶
[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.
Display¶
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
are sufficient.
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
GUI elements.
str_led_device_indices
(0 or 1) and str_led_indices
(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
and str_led_max_currents
the current setting limit for the GUI (0..255).
bool_allowgammalut = False
str_usergammalutfilename = defaultGammaLUT
Defines if gamma correction is used and which file contains the look-up table (see also Gamma correction and Gamma correction (installation) for details)
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¶
[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.