DMDX Help.


Skip Display Keyword

<SkipDisplay>
<sd>

Special CR equivalent:
~

    This keyword and CR (correct response) indicator is provided to facilitate the branching and subroutine abilities and it is designed to be used in either dummy items for branch destinations or decision making items in subroutines -- although it could also be useful in items that setup macros and load media with the <MediaLife> keyword.   When <sd> is present in an item there are several effects, the first of which being that that item's frames are not passed to the drawing or display routines (although it does go through the routines that load media), after it is parsed those proto-frames are discarded.   The second effect is that the item automatically continues to the next item (unless there's some branching in there), the same as the <Continue> keyword would.   The third effect is that the request time for the previous item is left as the request time for this item allowing the <delay> keyword to be used across items with branches in them.   Also, preparation times are not reported for <SkipDisplay> items and when used as a CR indicator at the start of an item the item is not printed in the diagnostics (both of which can save considerable time).

  Note that prior to version 5.0.0.0 of DMDX use of the last frame option in a skip display item would cause the job will abort as a syntax check does.  This meant subject data will not be saved.  This has now been rectified because the same logic causes a job to automatically abort if the last item is a skip display item...

    While d0!%0c has much the same effect as <sd> there are several Sleep() calls between items and within frames that would typically add up to 10 milliseconds plus two or three sevenths of the retrace duration per item that are designed to allow any operating system activity that might be pending to proceed at a known safe time instead of in the middle of a time critical display, <sd> bypasses these.   While 15 milliseconds might not matter most of the time as the demands placed on DMDX get more complex over time I am personally writing subroutines that have more and more decisions in them and in extreme cases might want 100 decisions which would take 1.5 seconds to parse with d0!%0c whereas using <sd> results in something like 100 milliseconds (much less when used as a CR indicator).   And there's no way that d0!%0c can cope with things like fMRI scripts that require absolutely constant ISIs, at the very least d2!%0c would have to be used.

    NOTE:- Note that prior to version 4.0.3.0 of DMDX item files that have large numbers of <SkipDisplay> items in them will be adversely affected by turning Always Flush File Buffers on as it is only on later versions that skip display items no longer flush the file buffers. 

    NOTE:- Using characters 0..9 for macros when using the CR indicator ~ will result in unwanted macro expansion unless there is a space between the tilde and first character of the item number or ~~ is used (where the macro code will collapse it to ~).


   
   
    For example the branching example could be re-written:

f20 <nfb>
0 "Acoustic Feedback Example" <bu 100>;
10
<biw 20> <sd>;
0 d20 <wav> "correct" <return>;
20
<binr 30> <sd>;
0 d20 <wav> "wrong" <return>;
30 d20 <wav> "noresponse" <return>;

+100 * "target" / <call -10> c;
+110 * "target" / <call -10> c;

        Or you could use the CR version:

f20 <nfb>
0 "Acoustic Feedback Example" <bu 100>;
~10 <biw 20>;
0 d20 <wav> "correct" <return>;
~20 <binr 30>;
0 d20 <wav> "wrong" <return>;
30 d20 <wav> "noresponse" <return>;

+100 * "target" / <call -10> c;
+110 * "target" / <call -10> c;

    A more strenuous example might be the case of displaying the subjects error rate.   Because DMDX prior to 2.6.02 couldn't actually display a counter as a stimulus one to had to have an item for each possible error rate (now of course <sprintf> is a far superior solution -- and even if it wasn't the <indexedbranch> would make a superior solution in any event):

f60 <clfb>
0 "ErrorRate Feedback Example" <bu 1000>;
~111
<set 1,errorrate>
<bicgt 1,0,1>; 0 "Error Rate 0%" / <return>;
~1 <bicgt 1,1,2>; 0 "Error Rate 1%" / <return>;
~2 <bicgt 1,2,3>; 0 "Error Rate 2%" / <return>;
~3 <bicgt 1,3,4>; 0 "Error Rate 3%" / <return>;
~4 <bicgt 1,4,5>; 0 "Error Rate 4%" / <return>;
~5 <bicgt 1,5,6>; 0 "Error Rate 5%" / <return>;
~6 <bicgt 1,6,7>; 0 "Error Rate 6%" / <return>;
~7 <bicgt 1,7,8>; 0 "Error Rate 7%" / <return>;
~8 <bicgt 1,8,9>; 0 "Error Rate 8%" / <return>;
~9 <bicgt 1,9,10>; 0 "Error Rate 9%" / <return>;
~10 <bicgt 1,10,11>; 0 "Error Rate 10%" / <return>;
~11 <bicgt 1,11,12>; 0 "Error Rate 11%" / <return>;
~12 <bicgt 1,12,13>; 0 "Error Rate 12%" / <return>;
~13 <bicgt 1,13,14>; 0 "Error Rate 13%" / <return>;
~14 <bicgt 1,14,15>; 0 "Error Rate 14%" / <return>;
~15 <bicgt 1,15,16>; 0 "Error Rate 15%" / <return>;
~16 <bicgt 1,16,17>; 0 "Error Rate 16%" / <return>;
~17 <bicgt 1,17,18>; 0 "Error Rate 17%" / <return>;
~18 <bicgt 1,18,19>; 0 "Error Rate 18%" / <return>;
~19 <bicgt 1,19,20>; 0 "Error Rate 19%" / <return>;
~20 <bicgt 1,20,21>; 0 "Error Rate 20%" / <return>;
~21 <bicgt 1,21,22>; 0 "Error Rate 21%" / <return>;
~22 <bicgt 1,22,23>; 0 "Error Rate 22%" / <return>;
~23 <bicgt 1,23,24>; 0 "Error Rate 23%" / <return>;
~24 <bicgt 1,24,25>; 0 "Error Rate 24%" / <return>;
~25 <bicgt 1,25,26>; 0 "Error Rate 25%" / <return>;
~26 <bicgt 1,26,27>; 0 "Error Rate 26%" / <return>;
~27 <bicgt 1,27,28>; 0 "Error Rate 27%" / <return>;
~28 <bicgt 1,28,29>; 0 "Error Rate 28%" / <return>;
~29 <bicgt 1,29,30>; 0 "Error Rate 29%" / <return>;
~30 <bicgt 1,30,31>; 0 "Error Rate 30%" / <return>;
~31 <bicgt 1,31,32>; 0 "Error Rate 31%" / <return>;
~32 <bicgt 1,32,33>; 0 "Error Rate 32%" / <return>;
~33 <bicgt 1,33,34>; 0 "Error Rate 33%" / <return>;
~34 <bicgt 1,34,35>; 0 "Error Rate 34%" / <return>;
~35 <bicgt 1,35,36>; 0 "Error Rate 35%" / <return>;
~36 <bicgt 1,36,37>; 0 "Error Rate 36%" / <return>;
~37 <bicgt 1,37,38>; 0 "Error Rate 37%" / <return>;
~38 <bicgt 1,38,39>; 0 "Error Rate 38%" / <return>;
~39 <bicgt 1,39,40>; 0 "Error Rate 39%" / <return>;
~40 <bicgt 1,40,41>; 0 "Error Rate 40%" / <return>;
~41 <bicgt 1,41,42>; 0 "Error Rate 41%" / <return>;
~42 <bicgt 1,42,43>; 0 "Error Rate 42%" / <return>;
~43 <bicgt 1,43,44>; 0 "Error Rate 43%" / <return>;
~44 <bicgt 1,44,45>; 0 "Error Rate 44%" / <return>;
~45 <bicgt 1,45,46>; 0 "Error Rate 45%" / <return>;
~46 <bicgt 1,46,47>; 0 "Error Rate 46%" / <return>;
~47 <bicgt 1,47,48>; 0 "Error Rate 47%" / <return>;
~48 <bicgt 1,48,49>; 0 "Error Rate 48%" / <return>;
~49 <bicgt 1,49,50>; 0 "Error Rate 49%" / <return>;
~50 <bicgt 1,50,51>; 0 "Error Rate 50%" / <return>;
~51 <bicgt 1,51,52>; 0 "Error Rate 51%" / <return>;
~52 <bicgt 1,52,53>; 0 "Error Rate 52%" / <return>;
~53 <bicgt 1,53,54>; 0 "Error Rate 53%" / <return>;
~54 <bicgt 1,54,55>; 0 "Error Rate 54%" / <return>;
~55 <bicgt 1,55,56>; 0 "Error Rate 55%" / <return>;
~56 <bicgt 1,56,57>; 0 "Error Rate 56%" / <return>;
~57 <bicgt 1,57,58>; 0 "Error Rate 57%" / <return>;
~58 <bicgt 1,58,59>; 0 "Error Rate 58%" / <return>;
~59 <bicgt 1,59,60>; 0 "Error Rate 59%" / <return>;
~60 <bicgt 1,60,61>; 0 "Error Rate 60%" / <return>;
~61 <bicgt 1,61,62>; 0 "Error Rate 61%" / <return>;
~62 <bicgt 1,62,63>; 0 "Error Rate 62%" / <return>;
~63 <bicgt 1,63,64>; 0 "Error Rate 63%" / <return>;
~64 <bicgt 1,64,65>; 0 "Error Rate 64%" / <return>;
~65 <bicgt 1,65,66>; 0 "Error Rate 65%" / <return>;
~66 <bicgt 1,66,67>; 0 "Error Rate 66%" / <return>;
~67 <bicgt 1,67,68>; 0 "Error Rate 67%" / <return>;
~68 <bicgt 1,68,69>; 0 "Error Rate 68%" / <return>;
~69 <bicgt 1,69,70>; 0 "Error Rate 69%" / <return>;
~70 <bicgt 1,70,71>; 0 "Error Rate 70%" / <return>;
~71 <bicgt 1,71,72>; 0 "Error Rate 71%" / <return>;
~72 <bicgt 1,72,73>; 0 "Error Rate 72%" / <return>;
~73 <bicgt 1,73,74>; 0 "Error Rate 73%" / <return>;
~74 <bicgt 1,74,75>; 0 "Error Rate 74%" / <return>;
~75 <bicgt 1,75,76>; 0 "Error Rate 75%" / <return>;
~76 <bicgt 1,76,77>; 0 "Error Rate 76%" / <return>;
~77 <bicgt 1,77,78>; 0 "Error Rate 77%" / <return>;
~78 <bicgt 1,78,79>; 0 "Error Rate 78%" / <return>;
~79 <bicgt 1,79,80>; 0 "Error Rate 79%" / <return>;
~80 <bicgt 1,80,81>; 0 "Error Rate 80%" / <return>;
~81 <bicgt 1,81,82>; 0 "Error Rate 81%" / <return>;
~82 <bicgt 1,82,83>; 0 "Error Rate 82%" / <return>;
~83 <bicgt 1,83,84>; 0 "Error Rate 83%" / <return>;
~84 <bicgt 1,84,85>; 0 "Error Rate 84%" / <return>;
~85 <bicgt 1,85,86>; 0 "Error Rate 85%" / <return>;
~86 <bicgt 1,86,87>; 0 "Error Rate 86%" / <return>;
~87 <bicgt 1,87,88>; 0 "Error Rate 87%" / <return>;
~88 <bicgt 1,88,89>; 0 "Error Rate 88%" / <return>;
~89 <bicgt 1,89,90>; 0 "Error Rate 89%" / <return>;
~90 <bicgt 1,90,91>; 0 "Error Rate 90%" / <return>;
~91 <bicgt 1,91,92>; 0 "Error Rate 91%" / <return>;
~92 <bicgt 1,92,93>; 0 "Error Rate 92%" / <return>;
~93 <bicgt 1,93,94>; 0 "Error Rate 93%" / <return>;
~94 <bicgt 1,94,95>; 0 "Error Rate 94%" / <return>;
~95 <bicgt 1,95,96>; 0 "Error Rate 95%" / <return>;
~96 <bicgt 1,96,97>; 0 "Error Rate 96%" / <return>;
~97 <bicgt 1,97,98>; 0 "Error Rate 97%" / <return>;
~98 <bicgt 1,98,99>; 0 "Error Rate 98%" / <return>;
~99 <bicgt 1,99,100>; 0 "Error Rate 99%" / <return>;
100 "Error Rate 100%" / <return>;

+1000 * "target";
+1000 * "target";
~2000
<call -111>;





DMDX Index.