DMDX Help.

International Issues.

    DMDX was designed in the good ol' US of A but does in fact function on any international version of windows, until recently it required a little coaxing to do so unfortunately.   Due to it's extreme customizability the human readable names of input devices and their buttons have been used rather than binary IDs and of course international versions of windows don't use English names for input devices so our hapless international user is thrust deep into the intricacies of DMDX well before they are up to it.  To solve this issue I built a default input device that works in any country by using binary IDs however existing <InputDevice> and button mapping keywords have to be removed from an item file before this device gets used. 

   Note that most of these considerations were rendered moot with the addition of the #keyboard device so the first section of the help here is less relevant these days.  Following the superseded section a # version of the example is given.  Using it you can easily build an item file that will work in any country by directly using the button numbers instead of names. 

   Also note that any time you're unmapping keywords you run the risk of leaving DMDX with no valid inputs and if you try and gather an RT under those circumstances there's a good chance you'll lock DMDX up because it can't advance to the next item (DMDX isn't of course locked up but it sure isn't paying attention to you, it is however easily terminated with the task manager).  Under these circumstances DMDX's safe mode is your friend as it tells DMDX to constantly poll for the ESC key so you can abort an item under almost all circumstances.  It used to be the case that having safe mode active while gathering RTs could lead to some extra variability in RT data however these days CPUs are so fast this is moot.

Changing Keyboard mappings.

  To change DMDX's input mappings the first thing that must be done is to to use the TimeDX input test and find out what the name of your keyboard device is.  While you are there you will also want to find out what the name of the space bar is (which will be used as the request key to advance from item to item) and the names left and right shift keys (that will be the response keys).  A key point to know is that the name TimeDX reports for a button will have a plus sign (+) in front of it when used in DMDX.

  Having done that you will need to edit the parameter line of the item file.  For instance the demo has the following parameter line:

<ep> s8 <azk> f25 <id "keyboard"> <mr +g> <mnr +f> <mpr +h>
<safemode 1> <vm desktop> <id mouse> <mr +button 1> <eop>

  This item file binds the G key to the request (in addition to the spacebar), the F key to the negative response and the H key to the positive response (in addition to the shift keys).  You will need to replace <id "keyboard"> with the name of your keyboard from TimeDX, similarly you will need to edit the mappings:

<ep> s8 <azk> f25 <id "your-keyboard-name"> <mr +your-spacebar-name> <mnr +your-left-shiftkey-name> <mpr +your-right-shiftkey-name>
<safemode 1> <vm desktop> <id mouse> <mr +button 1> <eop>

  The use of quotes is optional, sometimes spaces in the names devices and buttons necessitate their use, at other times they appear to break things (we're still looking into that).  The same sort of thing would be required for the mouse.


#keyboard example.

  And of course as with all things in DMDX old features are superseded by better ones, here driven by the need for item files that operate in multiple countries.  Not to mention that in some Arabic and Asian fonts you can't even map the keyboard regardless of it's name.  So three devices exist that can be mapped on all Windows machines, the #keyboard, the #mouse and the #joystick and they all use #nnn names for keys, the nnn numbers of which you can find out with the TimeDX Input test.

  The examples above would be rendered this way using the # devices for a remote testing setup that works in multiple countries:

<ep> s8 <azk> f25 <id #keyboard> <mr +#34> <mnr +#33> <mpr +#35>
<safemode 1> <vm desktop> <id #mouse> <mr +#4> <eop>

DMDX Index.