DMDX Help.
DMDX 6
Last Updated : 11/25/24 j.c.f.
This is the help
for DMDX version 6 (current version number is
here), Dmastr for Win32 (Windows 7, 8,
8.1, 10 and 11) with DirectX 9.0 or later. DMDX is a Win32-based display system used in psychological,
linguistic and other laboratories around the world to measure reaction times to visual and auditory stimuli. It was
written by Jonathan
C. Forster at the University of Arizona
and continues to be maintained by him. Version 1 worked on 486 class machines,
Version 2 of DMDX dropped support for 486 class machines allowing much more
accurate timing and generally cleaned up a lot of stuff like multi-monitor
support. Version 3 cut support for Windows 95, radically restructured the
Audio Input and introduced the DMDX installer and .CHM help files. Version 4
added Unicode support (was actually initially
added in 3.3 but fleshed out here) and addressed the long
standing trouble DMDX had with other applications stealing it's focus.
In addition version 4 also introduced Auto Mode that allows DMDX to operate
without the use of TimeDX (all but essential
for remote testing), 4.2 expanded the
support for millisecond (as opposed to tick) display durations and 4.3
introduced variable length macro
names making their use much more readable. Version 5
added a Direct3D rendering path that is
required for Windows 8 and later operating systems as DirectDraw (the original rendering
API) is now emulated. Version 5 also dispenses with operating systems earlier than
Windows XP. Version 5.1 added support for
NVidia 3D shutter glasses and that
would have been it for DMDX as my position was terminated shortly
thereafter however retirement boredom set in and version 5.2
added support for AMD FreeSync
and NVidia G-Sync displays (simply so I could stop thinking about the
changes needed to do so) allowing DMDX to have a variable retrace rate
and arbitrary display durations not tied to the raster interval.
Interestingly almost a decade later with modern OS interfaces no longer
providing the necessary functions to track the raster this code may wind
up being the only way future machines can sync DMDX's display to the
raster what to speak of machines that overheat when DMDX hammers the
raster status. After
that version 5.3
significantly tightened up DMDX's parsing of keyword parameters and added
an Introduction button that
runs a built in item file introducing DMDX's features and exposes some
test modes so one doesn't need an item file to quickly test if a machine
is going to run DMDX at all well (it wasn't fully blocked out for about
another 18 months and still receives periodic updates, it's text is
included here). Version 6 dispenses with support for
Windows XP (and Vista I suspect but who ever used that?) with the addition
of support for Windows Touch touch screen devices and version 6.1 adds
support for eye trackers such as those made by Gazepoint and other devices
controlled over a TCP/IP
connection. Version 6.2 added global support for non-Roman character
sets in file names using UTF-8, be it in item
file names or in resource file names and 6.3 added support for named
counters in addition to the
classic numbered ones matching the variable length macro names from 4.3.
Version 6.4 now parses Unicode outside quotes to UTF-8 in item files
(prior to that Unicode was only preserved inside quotes and even then it
was a form of UTF-16, outside quotes it was simply eliminated) which
means file names and other names that used to have to be quoted if they
weren't using Roman characters no longer need to be quoted†.
6.4's modifications also add support for Unicode in counter and macro
names (including emoticons!)
and should end the decade plus long odyssey of Unicode development in DMDX
because if there's another place that could possibly be tripped up by
Unicode characters I sure can't imagine where it is. This involved
tearing apart DMDX's recursive macro code (originally added in DMTG in the
late 80's) and I realized having done that much I might as well take a
crack at in place
macros and after much
thought (and extensive use of the modern debugger that runs rings around
what I was using back when DMDX was created) now with version 6.5 when a back tick ` is
used for a lead in instead of the legacy tilde you don't have to make sure your
macros are defined
before the item they're used in -- something that's pissed me of for
decades but was never prepared to address because it was such a daunting
thing to try and do, shows you how boring retirement can be...
Please note that we distribute this software as is, with no guarantees
as to its reliability. It may not be redistributed for sale.
The DMASTR software is distributed free of charge, and we ask only that you
acknowledge use of the system in publications (e.g., "The experiment was run
using the DMASTR software (DMDX) developed at Monash University and at the University
of Arizona by K.I.Forster and J.C.Forster."). You can also cite our DMDX
paper: DMDX: A Windows display program with millisecond accuracy. Forster,
K.I. & Forster, J.C. Behavior Research Methods, Instruments, & Computers
(2003) 35: 116. https://doi.org/10.3758/BF03195503
Although the software has been in constant use for more than 20 years, it is
constantly evolving, and hence there is always the possibility that new
releases may contain bugs. We do not assume any legal responsibility for the
software, but we do assume the responsibility of advising you as rapidly as
possible of any bugs that we do detect. For this reason, it is important that
you get your name onto the user list serv if you plan to use the system on a
regular basis. To do so:
- Send a message to list@list.arizona.edu from the
address you want to subscribe to the list.
- In the subject line of your message, type in: subscribe dmdx
Firstname Name (replace 'Firstname Name' by your
own first name and name).
Once your subscription is confirmed posts can be
made to
dmdx@list.arizona.edu. Please don't send attachments to the list. Your
subscription should also be manageable by pointing your browser at
https://list.arizona.edu/sympa/info/dmdx.
†There are some exceptions
to this rule, notably if the characters you're using are in the code page the
machine is using you could probably get away without quotes before version
6.4. OTOH if your file name has spaces in them quotes are likely to still be
needed...