---------------------------------------------- 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). .. code-block:: ini [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. .. code-block:: ini 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. .. code-block:: ini float_scale_x_um_per_pix = 0.5 float_scale_y_um_per_pix = 0.5 Stimulus scaling in micrometers per pixel. .. code-block:: ini 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. .. code-block:: ini bool_disablefullscrcmd = True Internal parameter with respect to OpenGL implementation. Ignore and do not change. .. code-block:: ini 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. .. code-block:: ini [Overlay] bool_use_screen_overlay = False Screen overlay mode is active if ``True`` **and** full-screen mode selected in the ``[Stage]`` section (see above). .. code-block:: ini int_screen_index_gui = 0 The index of the screen with the GUI. .. code-block:: ini 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. .. code-block:: ini 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. .. code-block:: ini 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. .. code-block:: ini [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. .. code-block:: ini 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). .. code-block:: ini 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 :ref:`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 ---------------------------------------------- .. code-block:: ini [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. .. code-block:: ini [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). .. code-block:: ini bool_allowgammalut = False str_usergammalutfilename = defaultGammaLUT Defines if gamma correction is used and which file contains the look-up table (see also :ref:`gamma-correction-label` and :ref:`Gamma correction (installation) ` for details) .. code-block:: ini 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. .. code-block:: ini 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 ---------------------------------------------- .. code-block:: ini [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.