When I originally created the ASCII output files that DMDX generates I considered their formats fairly obvious, having had to explain them a number of times some time ago this note rectifies such oversight. DMDX data files are created in the directory that the item file is in unless said directory is read only or otherwise not writable (say it's a DVD or you're deliberately using a read only network share) and the data file is ASCII in which case the temporary directory will be used (%temp% in a batch file for DOS prompt). The binary .DTP file format is excluded from the %temp% fall back logic as I'm not touching deprecated code. As of version 6.3.0.2 DMDX now emits the actual path and name for ASCII data files in the diagnostics.
DTPSubjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 04/20/2010 13:29:10 on 666-DEVEL, refresh 16.67ms Item RT 10 -4000.00 20 712.86 30 -809.09 40 896.93 50 679.68Here five items numbered ten through fifty were responded to, the first one being a timed out out item where the subject didn't respond within the 4000 millisecond timeout and the third being an incorrect response. Multiple subjects will have their data appended to that:
Subjects incorporated to date: 002 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 04/20/2010 13:29:10 on 666-DEVEL, refresh 16.67ms Item RT 10 -4000.00 20 712.86 30 -809.09 40 896.93 50 679.68 ********************************************************************** Subject 2, 04/21/2010 11:50:53 on 666-DEVEL, refresh 16.67ms Item RT 10 896.93 20 679.68 *** ABORTED *** 30 1787.99 40 649.58 50 553.33Here the second subject's second item was aborted. Other information can be interjected within those lines where the first character of the line is an exclamation mark:
Subjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 04/20/2010 13:29:10 on 666-DEVEL, refresh 16.67ms Item RT 10 -4000.00 20 712.86 ! Display error at msec 12649.61, tick 758 in item 20, frame "TEST" ! moved into video memory 2 ticks late ! (previous frame's duration will have been longer) 30 -809.09 40 896.93 50 679.68Here a display error has occurred. And additional columns of data can be present, for example the <RecordClockOnTime> keyword has been used below:
Subjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 04/06/2004 11:06:26 on 666-DEVEL, refresh 11.78ms Item RT COT 250 -500.00 0.00 250 -500.00 1435.41 250 -500.00 2870.81 250 -500.00 4306.22Later versions of DMDX will have additional data in the subject line, DMDX's version number and an indication of the Windows version running:
Subject 1, 08/06/2017 15:46:12 on WIN10LAPTOP, DMDX 5.1.5.2, Windows 6.2.9200, refresh 16.95msAll versions of DMDX can have a subject ID if it's been provided at the end of the subject line:
Subject 2, 08/24/2017 15:44:56 on WIN10LAPTOP, DMDX 5.1.5.2, Windows 6.2.9200, refresh 16.95ms, ID abcOccasionally people wish to annotate data files and doing so is certainly possible however there are a few caveats. First and foremost, the file must remain a text file, it cannot be saved as an .RTF file or a .DOC or .DOCX or anything else, it needs to be plain text with the .AZK extension. If you do save it as some other file type and DMDX pukes on it you can try and save it as a text file and maybe the format won't have been busted too bad but there's no guarantees. Next up you want to avoid editing lines that deal with the subject number or number of subjects as DMDX has to parse those lines. Lastly you can put an exclamation mark at the start of the lines you edit (like the display error above) as DMDX and ANALYZE will ignore lines that begin with !. Technically you could add notes at the end of lines other than the number of subjects line however it's safer to use the ! at the start of a new line. These rules apply to the .ZIL data file type below as well.
Subjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 04/30/2010 13:19:32 on 666-DEVEL, refresh 16.67ms Item 1 1169.32,+1 1302.79,-1 1859.05,+2 1981.58,-2 2462.57,+3 2590.59,-3 3087.72,+4 3207.52,-4 Item 2 808.51,+2 933.77,-2 1062.55,+2 1206.96,-2 1448.67,+1 1584.89,-1 1778.20,+3 1966.26,-3Here in item 1 keys 1, 2, 3 and 4 were pressed and we see the times the keys were pressed (the 1 key 1169.32 ms after the clock on) and times they were released (the 1 key being released 1302.79 ms after the clock on). Item 2 had the sequence 2213 pressed. One can remove the key release information by validating just the key presses for instance:
********************************************************************** Subject 4, 04/30/2010 13:30:39 on 666-DEVEL, refresh 16.67ms Item 1 2326.75,+1 2739.34,+2 3151.76,+3 Item 2 1067.81,+3 1528.83,+2 2002.86,+1If one uses the <ZillionOneResponse> mode then RTs will be appended on the item number line:
Subjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 03/21/2003 14:59:10 on 666-DEVEL, refresh 11.78ms Item 9991, 1706.12 1706.12,+2 Item 9992, 900.77 900.77,+3Here's a <zor> script using DMDX's auto mode so there are extra comments containing diagnostics, a startup display error just for good measure (actually a very common thing to see on the first item in a file), a warning relevant to auto or EZ modes and it uses <AbortDQPurge> so every item is aborted. Here you can see the appended RT coming after the aborted message:
Subjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 06/11/2010 10:28:28 on 666-DEVEL, refresh 10.00ms ! DMDX is running in auto mode (automatically determined raster synch) ! Video Mode 1024,768,32,100 ! Item File <D:\dx3\test\test abortDQPurge fix.rtf> ! Display error at msec 561.04, tick 48 in item 500, frame "vertical fixation2" ! was blocked by Flip() not returning for 96.28ms ! (previous frame's duration will have been longer) ! -- possibly caused by another process taking 2 ticks ! WARNING: Explicit frame duration (% or <%>) used in EZ or auto mode, use <%ms> instead Item 500 *** ABORTED ***, 253.18 253.18,+Right Shift Item 500 *** ABORTED ***, -227.94 227.94,+Right Shift Item 221201 *** ABORTED ***, -101.59 101.59,+Right Shift Item 122102 *** ABORTED ***, -194.60 194.60,+Right ShiftIf one uses the <ZillionOneLine> keyword with the earlier example then all output for each item is put on one line (the zilliononeline utility will do this post hoc if you forget to include <zol>...):
********************************************************************** Subject 5, 04/30/2010 13:48:11 on 666-DEVEL, refresh 16.67ms Item 1 1191.46,+2 1350.61,+2 1613.11,+3 1762.12,+1 Item 2 463.16,+3 631.01,+2 842.50,+1 Item 3 535.58,+1 636.32,+2 770.90,+3Here's the earlier <zor> script using <zol> (without a display error this time) where you can see the effect of <zol> is to have the RT printed twice in a row however the first time it's printed it's negative or positive based on it's correctness, the second time is it's absolute value (which under some rare circumstances involving <ContinueClockOn> below could in fact be negative -- but that's that a exceedingly rare usage) :
********************************************************************** Subject 2, 06/11/2010 10:28:28 on 666-DEVEL, refresh 10.00ms ! DMDX is running in auto mode (automatically determined raster synch) ! Video Mode 1024,768,32,100 ! Item File <D:\dx3\test\test abortDQPurge fix.rtf> ! WARNING: Explicit frame duration (% or <%>) used in EZ or auto mode, use <%ms> instead Item 500 *** ABORTED ***, 275.55 275.55,+Right Shift Item 500 *** ABORTED ***, -314.28 314.28,+Right Shift Item 211203 *** ABORTED ***, -125.83 125.83,+Right Shift Item 212213 *** ABORTED ***, 250.68 250.68,+Right ShiftIf you use the <ZillionTypedResponses> then the resultant text (that which would be displayed) is added in brackets after the item number (<zol> is used here too):
Subjects incorporated to date: 001 Data file started on machine 666-DEVEL ********************************************************************** Subject 1, 09/11/2007 10:45:32 on 666-DEVEL, refresh 16.67ms Item 1, (REAL) 968.53,+R 990.13,+E 1122.47,+A 1922.44,+L 2164.61,+EnterSimilarly if one uses <rcot> then it's data will be added in there as well:
********************************************************************** Subject 4, 10/18/2006 14:32:47 on 666-DEVEL, refresh 16.58ms COT Item 1, COT 0.00, No Responses. Item 2, COT 994.83 -1751.87,+Space -1639.71,-Space 182.03,+Left Shift 295.29,-Left Shift 766.40,+Left Shift 882.42,-Left ShiftAn astute observer would note the negative RTs provided in the keystroke data there, this is because that test was done with <ContinueClockOn> in the second item and I was testing whether zillion responses survived the changes made for it and the negative times (correctly) indicate those keystrokes occurred before item 2 was actually being displayed. They would also have noticed that the COT heading for AZK files has been appended to to the subject line (if a subject ID had been used it would become part of it, oops). This was fixed in version 5.1.5.3. Corrected current output would look something like this:
********************************************************************** Subject 4, 10/18/2006 14:32:47 on 666-DEVEL, DMDX 5.1.5.3, Windows 6.2.9200, refresh 16.58ms Item 1, COT 0.00, No Responses. Item 2, COT 994.83 -1751.87,+Space -1639.71,-Space 182.03,+Left Shift 295.29,-Left Shift 766.40,+Left Shift 882.42,-Left Shift