Advertisement
Guest User

Untitled

a guest
Sep 18th, 2014
413
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 77.77 KB | None | 0 0
  1. *******************************************************************************************************************
  2. *******************************************************************************************************************
  3. EDITABLE CODE
  4. *******************************************************************************************************************
  5. *******************************************************************************************************************
  6.  
  7. ***************************************************************************************
  8. *********************************************
  9. Editable Values
  10. *********************************************
  11. ***************************************************************************************
  12.  
  13. Zoom Feature: the zooming effect is achieved through trial.increase/decrease that keep calling themselves/each other
  14. until the mouse cursor hits the top or bottom of the screen. The amount that the picture increases/decreases depends on
  15. a) values.Startheight_ratioA/values.Startheight_ratioB (editable)
  16. b) values.MinHeight_ratio (editable)
  17. and
  18. c) how much change there was in the cursor position in the current trial (if the mouse is gradually
  19. moved, the pictures shrinks more slowly than when the mouse is moved quickly)
  20.  
  21. /Startheight_ratioA: sets the initial size of the landscape pictures (default ratio: 0.5 of active screenheight)
  22. /Startheight_ratioB: sets the initial size of the portrait pictures (default ratio: 0.6 of active screenheight)
  23. /MinHeight_ratioA: sets the the min picture height of the landscape pictures(default: 0.05 => 5% of MaxHeight)
  24. /MinHeight_ratioB: sets the the min picture height of the portrait pictures(default: 0.1 => 10% of MaxHeight)
  25. /intertrialinterval: sets the intertrialinterval for the AAT trials (default: 300ms)
  26. /pixeltolerance: sets the initial tolerance of pixelchanges after participants click
  27. the center cross (so that accidental movements are not 'punished')
  28. (default: 10)
  29.  
  30. <values>
  31. /Startheight_ratioA = 0.5
  32. /Startheight_ratioB = 0.5
  33. /Startheight_ratioC = 0.5
  34. /Startheight_ratioD = 0.5
  35. /Startheight_ratioE = 0.5
  36. /Startheight_ratioF = 0.5
  37. /Startheight_ratioG = 0.5
  38. /Startheight_ratioH = 0.5
  39. /Startheight_ratioI = 0.5
  40. /Startheight_ratioJ = 0.5
  41. /MinHeight_ratioA = 0.1
  42. /MinHeight_ratioB = 0.1
  43. /MinHeight_ratioC = 0.1
  44. /MinHeight_ratioD = 0.1
  45. /MinHeight_ratioE = 0.1
  46. /MinHeight_ratioF = 0.1
  47. /MinHeight_ratioG = 0.1
  48. /MinHeight_ratioH = 0.1
  49. /MinHeight_ratioI = 0.1
  50. /MinHeight_ratioJ = 0.1
  51. /intertrialinterval = 300
  52. /pixeltolerance = 5
  53. </values>
  54.  
  55. ***************************************************************************************
  56. *********************************************
  57. Editable Stimuli
  58. *********************************************
  59. ***************************************************************************************
  60. The list item.targets is organized in the following way:
  61. main category 1 (here: unhealthy food blue) indices 1-5
  62. main category 1 (here: unhealthy food violet) indices 6-10
  63. main category 2 (here: healthy food blue) indices 11-15
  64. main category 2 (here: healthy food violet) indices 16-20
  65. main category 3 (here: IAPS Pictures blue) indices 21-30
  66. main category 3 (here: IAPS Pictures violet) indices 31-40
  67. Filler pictures???
  68.  
  69. <item targets>
  70. /1 = "Pictures_new\cheeseburger_b.jpg"
  71. /2 = "Pictures_new\pizza_b.jpg"
  72. /3 = "Pictures_new\luxemburgerli_b.jpg"
  73. /4 = "Pictures_new\pommes_b.jpg"
  74. /5 = "Pictures_new\paprikachips_b.jpg"
  75.  
  76. /6 = "Pictures_new\cheeseburger_v.jpg"
  77. /7 = "Pictures_new\pizza_v.jpg"
  78. /8 = "Pictures_new\luxemburgerli_v.jpg"
  79. /9 = "Pictures_new\pommes_v.jpg"
  80. /10 = "Pictures_new\paprikachips_v.jpg"
  81.  
  82. /11 = "Pictures_new\apfel_b.jpg"
  83. /12 = "Pictures_new\gemuesedip_b.jpg"
  84. /13 = "Pictures_new\gruenersalat_b.jpg"
  85. /14 = "Pictures_new\Muesli_b.jpg"
  86. /15 = "Pictures_new\Lachs_b.jpg"
  87.  
  88. /16 = "Pictures_new\apfel_v.jpg"
  89. /17 = "Pictures_new\gemuesedip_v.jpg"
  90. /18 = "Pictures_new\gruenersalat_v.jpg"
  91. /19 = "Pictures_new\Muesli_v.jpg"
  92. /20 = "Pictures_new\Lachs_v.jpg"
  93.  
  94. /21 = "Pictures_new\1630_b.jpg"
  95. /22 = "Pictures_new\2035_b.jpg"
  96. /23 = "Pictures_new\2045_b.jpg"
  97. /24 = "Pictures_new\2100_b.jpg"
  98. /25 = "Pictures_new\5829_b.jpg"
  99. /26 = "Pictures_new\5833_b.jpg"
  100. /27 = "Pictures_new\6230_b.jpg"
  101. /28 = "Pictures_new\9280_b.jpg"
  102. /29 = "Pictures_new\9911_b.jpg"
  103. /30 = "Pictures_new\8485_b.jpg"
  104.  
  105. /31 = "Pictures_new\1630_v.jpg"
  106. /32 = "Pictures_new\2035_v.jpg"
  107. /33 = "Pictures_new\2045_v.jpg"
  108. /34 = "Pictures_new\2100_v.jpg"
  109. /35 = "Pictures_new\5829_v.jpg"
  110. /36 = "Pictures_new\5833_v.jpg"
  111. /37 = "Pictures_new\6230_v.jpg"
  112. /38 = "Pictures_new\9280_v.jpg"
  113. /39 = "Pictures_new\9911_v.jpg"
  114. /40 = "Pictures_new\8485_v.jpg"
  115. </item>
  116.  
  117. NOTE:
  118. organization of practice stimuli
  119. practice category 1 (here: practice pictures blue) indices 1-5
  120. practice category 1 (here: practice pictures violet) indices 6-10
  121.  
  122. <item practicestimuli>
  123. /1 = "Pictures_new\1440_b.jpg"
  124. /2 = "Pictures_new\1603_b.jpg"
  125. /3 = "Pictures_new\1731_b.jpg"
  126. /4 = "Pictures_new\7530_b.jpg"
  127. /5 = "Pictures_new\9831_b.jpg"
  128.  
  129. /6 = "Pictures_new\1440_v.jpg"
  130. /7 = "Pictures_new\1603_v.jpg"
  131. /8 = "Pictures_new\1731_v.jpg"
  132. /9 = "Pictures_new\7530_v.jpg"
  133. /10 = "Pictures_new\9831_v.jpg"
  134. </item>
  135.  
  136. ***************************************************************************************
  137. *********************************************
  138. Editable Instructions
  139. *********************************************
  140. ***************************************************************************************
  141. <instruct >
  142. / windowsize = (90%, 90%)
  143. / fontstyle = ("Arial", 3%, false, false, false, false, 5, 0)
  144. /inputdevice = mouse
  145. /finishlabel = "Hier klicken um fortzufahren"
  146. /nextlabel = "Hier klicken um fortzufahren"
  147. /prevlabel = "Hier klicken um zurückzugehen"
  148. </instruct>
  149.  
  150. <page intro>
  151. In der folgenden Aufgabe siehst du Bilder, welche entweder einen blauen oder einen violetten Rahmen haben.
  152. ^*Wenn du ein Bild mit <%values.format1%> Rahmen siehst, sollst du das Bild zu dir hin bewegen (sprich mit der Maus nach unten)
  153. ^* Wenn du ein Bild mit <%values.format2%> Rahmen siehst, sollst du das Bild von dir weg bewegen (sprich mit der Maus nach oben)
  154. ^^=> Wenn du die Maus nach oben bewegst, wird das Bild kleiner werden.
  155. ^=> Wenn du nach nach unten bewegest, wird das Bild grösser werden.
  156. ^^Du musst die Maus jeweils ganz bis zum Rand bewegen.
  157. ^^Nach jedem Bild musst du die Maus in der Mitte platzieren um das neue Bild zu sehen.
  158. ^^Drücke auf den Knopf um die Übung zu starten.
  159. </page>
  160.  
  161. <page practice>
  162. Jetzt kommt der Übungsdurchgang. Es werden 20 Bilder präsentiert.
  163. ^^**********************************************************************************
  164. ^* Zieh die Maus zu dir hin, wenn du einen <%values.format1%> Rahmen siehst
  165. ^* Bewege die Maus von dir weg, wenn du einen <%values.format2%> Rahmen siehst
  166. ^***********************************************************************************
  167. ^^Du solltest so schnell und genau wie möglich sein.
  168. ^^^Drücke den Knopf um den Übungsdurchgang zu starten.
  169. </page>
  170.  
  171. <page taskinstructions>
  172. Jetzt kommt der richtige Durchgang. Du wirst verschiedene Bilder mit blauen und violetten Rahmen sehen, wie im Übungsdurchgang.
  173. ^^**********************************************************************************
  174. ^* Zieh die Maus zu dir hin, wenn du einen <%values.format1%> Rahmen siehst
  175. ^* Bewege die Maus von dir weg, wenn du einen <%values.format2%> Rahmen siehst
  176. ^***********************************************************************************
  177. ^^Du solltest so schnell und genau wie möglich sein.
  178. ^^^Drücke den Knopf um zu starten.
  179. </page>
  180.  
  181. <page End>
  182. Du hast die Aufgabe vollständig absolviert.
  183. </page>
  184.  
  185. <item trialstartinstructions>
  186. /1 = "Klick auf das X um fortzufahren."
  187. </item>
  188.  
  189. ***************************************************************************************
  190. *********************************************
  191. Editable Lists
  192. *********************************************
  193. ***************************************************************************************
  194. AAT lists contain the indices of the target stimuli for each category
  195. (see item.targets above)
  196.  
  197. !!! NOTE: if the number of stimuli per category changes, change the appropriate
  198. list accordingly otherwise you can leave these lists as they are
  199.  
  200. <list category1>
  201. / items = (1, 2, 3, 4, 5)
  202. / replace = false
  203. </list>
  204.  
  205. <list category2>
  206. / items = (6, 7, 8, 9, 10)
  207. / replace = false
  208. </list>
  209.  
  210. <list category3>
  211. / items = (11, 12, 13, 14, 15)
  212. / replace = false
  213. </list>
  214.  
  215. <list category4>
  216. / items = (16, 17, 18, 19, 20)
  217. / replace = false
  218. </list>
  219.  
  220. <list category5>
  221. / items = (21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
  222. / replace = false
  223. </list>
  224.  
  225. <list category6>
  226. / items = (31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
  227. / replace = false
  228. </list>
  229. **************************************************************************************************************
  230. **************************************************************************************************************
  231. DATA: this section contains data file information
  232. **************************************************************************************************************
  233. **************************************************************************************************************
  234.  
  235. *****************
  236. raw data
  237. *****************
  238. date, time, subject: date and time script was run with the current subjectnumber
  239. /expcondition: used for counterbalancing experimental conditions
  240. 1: push for landscape, pull for portrait
  241. 2: pull for landscape, push for portrait
  242.  
  243. blockcode, blocknum: the name and number of the current block
  244. trialcode, trialnum: the name and number of the currently recorded trial
  245. (Note: not all trials that are run might record data)
  246. /stimulus: the presented stimulus
  247. /mouse_y: helper variable to track the y-position of the cursor
  248. /initialresponse: stores the original response to the stimulus
  249. /correct: stores the correctness of the initial response
  250. /finalresponse: stores the final response (at time mouse cursor hits top or bottom of screen)
  251. /changedirection: stores whether and how often participant changed direction during zooming (0 = no change)
  252. /RT: stores the latency of the initial response
  253. /completeRT: stores how long it takes until the cursor hits the screen top or bottom
  254.  
  255.  
  256. <data >
  257. /file = "AATmouseinput_raw.iqdat"
  258. / separatefiles = true
  259. / columns = [date, time, subject, values.expcondition, blockcode, blocknum, trialcode, values.trialcode, values.stimulus, values.mouse_y,
  260. values.initialresponse, values.correct, values.finalresponse, values.changedirection,
  261. values.RT, values.completeRT]
  262. </data>
  263.  
  264.  
  265. *****************
  266. summary data
  267. *****************
  268. uncorrecte AAT Difference Scores for each of the 4 main categories,
  269. Diff Scores = median latency for Push trials - median latency for Pull trials
  270. !!! NOTE: NOT corrected for accuracy, latency only for original response (not until joystick is fully extended)
  271.  
  272. /sequence: the experimental sequence generated for the participant
  273.  
  274. <summarydata >
  275. /file = "ATTmouseinput_summary.iqdat"
  276. /columns = [script.startdate, script.starttime, script.subjectid, values.expcondition,
  277. expressions.aat_diffscore_cat1, expressions.aat_diffscore_cat2,
  278. expressions.aat_diffscore_cat3, values.sequence]
  279. </summarydata>
  280.  
  281. *******************************************************************************************************************
  282. *******************************************************************************************************************
  283. REMAINING CODE: Customize after careful consideration only
  284. *******************************************************************************************************************
  285. *******************************************************************************************************************
  286.  
  287. **************************************************************************************************************
  288. **************************************************************************************************************
  289. DEFAULT SCREEN SETTING
  290. **************************************************************************************************************
  291. **************************************************************************************************************
  292. requires Inquisit 4.0.4.0 or higher
  293.  
  294. <defaults >
  295. /canvasaspectratio = (4,3)
  296. /minimumversion = "4.0.4.0"
  297. / inputdevice = mouse
  298. </defaults>
  299.  
  300. **************************************************************************************************************
  301. **************************************************************************************************************
  302. VALUES
  303. **************************************************************************************************************
  304. **************************************************************************************************************
  305.  
  306. *****************************
  307. automatically updated at runtime
  308. ****************************
  309.  
  310. AAT code:
  311. /totaltrialcount: the number of experimental trials (here 80)
  312. /nextstimulus : the number of the next targetstimulus to be presented
  313. /selectstimulus: the index of targetstimulus (in item )
  314. /targetcategory: the targetcategory of the targetstimulus, 1 - 4
  315. /targetformat : the targetformat of the targetstimulus (l = landscape; p = portrait)
  316. /sumRTcorrect_1- sumRTcorrect_8 : the sum of latencies for stimuli of (e.g.) category 1 - only for correct responses
  317. /sumRT_1 - sumRT_8: the sum of latencies for stimuli of (e.g.) category 1 - regardless of accuracy
  318. /repeat: helper variable: counts how often a change trial has run itself
  319. /selectpracticepicture: helper variable: dictates which rectangle (landscape/portrait) to select for practice
  320. /starttime: determines the starttime of a trial (measured at beginning of a picture trial)
  321. /endtime: determines the endtime of a zooming (measured at end of zoom trials)
  322. /expcondition: used for counterbalancing experimental conditions
  323. /format1/forma2: helper variables for instruction purposes; set in expt
  324. /startheight_A/startheight_B: sets the default height of the A(landscape)/B (portrait) picture
  325. /maxheight: maximum height for pictures (used canvasheight: display.canvasheight)
  326. /mouse_y: helper variable to track the y-position of the cursor
  327. /completeRT: stores how long it takes until the cursor hits the screen top or bottom
  328. /changedirection: stores whether and how often participant changed direction during zooming
  329. (0 = no change)
  330. /mouse_change: stores the absolute change in cursor y-positions from one zoom trial to the next
  331. /trialcode: stores the trialcode of the trial
  332. /RT: stores the latency of the initial response
  333. /correct: stores the correctness of the initial response
  334. /stimulus: stores the stimulus
  335. /initialresponse: stores the initial response
  336. /finalresponse: stores the final response (at time mouse cursor hits top or bottom of screen)
  337. /response: 1 = push (cursor UP), 0 = pull (cursor DOWN)
  338.  
  339.  
  340. <values >
  341. /totaltrialcount = 80
  342. /nextstimulus = 0
  343. /selectstimulus = 0
  344. /targetcategory = 0
  345. /targetformat = ""
  346. /sumRTcorrect_1 = 0
  347. /sumRT_1 = 0
  348. /sumRTcorrect_2 = 0
  349. /sumRT_2 = 0
  350. /sumRTcorrect_3 = 0
  351. /sumRT_3 = 0
  352. /sumRTcorrect_4 = 0
  353. /sumRT_4 = 0
  354. /sumRTcorrect_5 = 0
  355. /sumRT_5 = 0
  356. /sumRTcorrect_6 = 0
  357. /sumRT_6 = 0
  358. /repeat = 0
  359. /selectpracticepicture = 0
  360. /starttime = 0
  361. /endtime = 0
  362. /expcondition = 0
  363. /format1 = 0
  364. /format2 = 0
  365. /startheight_A = 0
  366. /startheight_B = 0
  367. /startheight_C = 0
  368. /startheight_D = 0
  369. /startheight_E = 0
  370. /startheight_F = 0
  371. /startheight_G = 0
  372. /startheight_H = 0
  373. /startheight_I = 0
  374. /startheight_J = 0
  375. /Maxheight = display.canvasheight
  376. /mouse_y = 0
  377. /completeRT = 0
  378. /changedirection = 0
  379. /mouse_change = 0
  380. /trialcode = 0
  381. /RT = 0
  382. /correct = 0
  383. /stimulus = 0
  384. /initialresponse = ""
  385. /finalresponse = ""
  386. /response = 0
  387. </values>
  388. **************************************************************************************************************
  389. **************************************************************************************************************
  390. EXPRESSIONS
  391. **************************************************************************************************************
  392. **************************************************************************************************************
  393. uncorrecte AAT Difference Scores for each of the 4 main categories,
  394. Diff Scores = median latency for Push trials - median latency for Pull trials
  395. !!! NOTE: NOT corrected for accuracy, latency only for original response (not until cursor hits top or bottom of screen)
  396.  
  397. /maxheightchange_px: max pixel height change of picture
  398.  
  399. <expressions >
  400. / AAT_Diffscore_Cat1 = if (values.expcondition == 1) trial.AAT_1.medianlatency - trial.AAT_2.medianlatency else
  401. trial.AAT_2.medianlatency - trial.AAT_1.medianlatency
  402. / AAT_Diffscore_Cat2 = if (values.expcondition == 1) trial.AAT_3.medianlatency - trial.AAT_4.medianlatency else
  403. trial.AAT_4.medianlatency - trial.AAT_3.medianlatency
  404. / AAT_Diffscore_Cat3 = if (values.expcondition == 1) trial.AAT_5.medianlatency - trial.AAT_6.medianlatency else
  405. trial.AAT_6.medianlatency - trial.AAT_5.medianlatency
  406. /maxheightchange_px = if (values.targetformat == "blue") {(values.Startheight_ratioA - values.MinHeight_ratioA) * values.Maxheight}
  407. else {(values.Startheight_ratioB - values.MinHeight_ratioB) * values.Maxheight}
  408. </expressions>
  409.  
  410.  
  411.  
  412.  
  413. **************************************************************************************************************
  414. **************************************************************************************************************
  415. AAT STIMULI
  416. **************************************************************************************************************
  417. **************************************************************************************************************
  418. <picture targetstimulus>
  419. / items = targets
  420. / select = values.selectstimulus
  421. / position = (50%, 50%)
  422. / size = (100%, 100%)
  423. / erase = false
  424. </picture>
  425.  
  426. ***helper stimulus
  427. <shape eraser>
  428. / shape = rectangle
  429. / color = white
  430. / size = (100%, 100%)
  431. / erase = false
  432. </shape>
  433.  
  434. <text instructtext>
  435. /items = trialstartinstructions
  436. /select = 1
  437. /position = (50%, 40%)
  438. / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
  439. </text>
  440.  
  441. <text center>
  442. /items = ("x")
  443. /position = (50%, 50%)
  444. / fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
  445. / txcolor = (red)
  446. </text>
  447.  
  448. <text fixation>
  449. / items = ("+")
  450. / fontstyle = ("Verdana", 8.00%, true)
  451. / position = (50%,50%)
  452. / erase = false
  453. </text>
  454.  
  455. <shape blank>
  456. / shape = rectangle
  457. / color = (white)
  458. / position = (50%,50%)
  459. / size = (100%,100%)
  460. / erase = false
  461. </shape>
  462. **************************************************************************************************************
  463. **************************************************************************************************************
  464. AAT LISTS
  465. **************************************************************************************************************
  466. **************************************************************************************************************
  467.  
  468. **************************************************************************************************************
  469. **************************************************************************************************************
  470. AAT PRACTICE
  471. **************************************************************************************************************
  472. **************************************************************************************************************
  473.  
  474. *************************
  475. Practice Stimuli
  476. *************************
  477. <text error>
  478. / items = ("Falsch")
  479. / position = (50%, 50%)
  480. / fontstyle = ("Arial", 5%, true, false, false, false, 5, 0)
  481. / txcolor = (white)
  482. /txbgcolor = (red)
  483. </text>
  484.  
  485. <text x>
  486. / items = ("Falsch")
  487. / position = (50, 60)
  488. / fontstyle = ("Arial", 7%, true, false, false, false, 5, 0)
  489. /color = red
  490. </text>
  491.  
  492. *************************
  493. Practice Stimuli
  494. *************************
  495.  
  496. NOTE:
  497. picture.practicetarget selects the target via
  498. values.selectpracticepicture (this value is set in the
  499. practice trials, see below)
  500.  
  501. <picture practicetarget>
  502. / items = practicestimuli
  503. / select = values.selectpracticepicture
  504. / position = (50%, 50%)
  505. / size = (100%, 100%)
  506. / erase = false
  507. </picture>
  508. *************************
  509. Practice Trials
  510. *************************
  511. NOTE: practice trials report error feedback to participant.
  512.  
  513. Note: trial.practicestarta/trial.practicestartb
  514. * makes sure the mouse cursor is in the middle of the screen by asking participants
  515. to click on a center stimulus (here:X)
  516. <trial practicestartA>
  517. /inputdevice = mouse
  518. /stimulusframes = [1 = instructtext, center]
  519. /validresponse = (center)
  520. /ontrialend = [values.mouse_y = trial.practicestartA.responsey]
  521. /recorddata = false
  522. /branch = [trial.practicetrial_a]
  523. </trial>
  524.  
  525. <trial practicestartB>
  526. /inputdevice = mouse
  527. /stimulusframes = [1 = instructtext, center]
  528. /validresponse = (center)
  529. /ontrialend = [values.mouse_y = trial.practicestartB.responsey]
  530. /recorddata = false
  531. /branch = [trial.practicetrial_b]
  532. </trial>
  533.  
  534. <trial practicestartC>
  535. /inputdevice = mouse
  536. /stimulusframes = [1 = instructtext, center]
  537. /validresponse = (center)
  538. /ontrialend = [values.mouse_y = trial.practicestartC.responsey]
  539. /recorddata = false
  540. /branch = [trial.practicetrial_c]
  541. </trial>
  542.  
  543. <trial practicestartD>
  544. /inputdevice = mouse
  545. /stimulusframes = [1 = instructtext, center]
  546. /validresponse = (center)
  547. /ontrialend = [values.mouse_y = trial.practicestartD.responsey]
  548. /recorddata = false
  549. /branch = [trial.practicetrial_d]
  550. </trial>
  551.  
  552. <trial practicestartE>
  553. /inputdevice = mouse
  554. /stimulusframes = [1 = instructtext, center]
  555. /validresponse = (center)
  556. /ontrialend = [values.mouse_y = trial.practicestartE.responsey]
  557. /recorddata = false
  558. /branch = [trial.practicetrial_e]
  559. </trial>
  560.  
  561. <trial practicestartF>
  562. /inputdevice = mouse
  563. /stimulusframes = [1 = instructtext, center]
  564. /validresponse = (center)
  565. /ontrialend = [values.mouse_y = trial.practicestartF.responsey]
  566. /recorddata = false
  567. /branch = [trial.practicetrial_f]
  568. </trial>
  569.  
  570. <trial practicestartG>
  571. /inputdevice = mouse
  572. /stimulusframes = [1 = instructtext, center]
  573. /validresponse = (center)
  574. /ontrialend = [values.mouse_y = trial.practicestartG.responsey]
  575. /recorddata = false
  576. /branch = [trial.practicetrial_g]
  577. </trial>
  578.  
  579. <trial practicestartH>
  580. /inputdevice = mouse
  581. /stimulusframes = [1 = instructtext, center]
  582. /validresponse = (center)
  583. /ontrialend = [values.mouse_y = trial.practicestartH.responsey]
  584. /recorddata = false
  585. /branch = [trial.practicetrial_h]
  586. </trial>
  587.  
  588. <trial practicestartI>
  589. /inputdevice = mouse
  590. /stimulusframes = [1 = instructtext, center]
  591. /validresponse = (center)
  592. /ontrialend = [values.mouse_y = trial.practicestartI.responsey]
  593. /recorddata = false
  594. /branch = [trial.practicetrial_i]
  595. </trial>
  596.  
  597. <trial practicestartJ>
  598. /inputdevice = mouse
  599. /stimulusframes = [1 = instructtext, center]
  600. /validresponse = (center)
  601. /ontrialend = [values.mouse_y = trial.practicestartJ.responsey]
  602. /recorddata = false
  603. /branch = [trial.practicetrial_j]
  604. </trial>
  605.  
  606.  
  607. NOTE:
  608. *trial.practicetrial_A displays the stimulus of format A (here: landscape) by setting
  609. values.selectpracticepicture = 1
  610. *if a push movement is detected (=mouse is pushed away from body)-> decrease picture
  611. *if a pull movement is detected (=mouse is pulled towards body)-> increase picture
  612. <trial practicetrial_A>
  613. /inputdevice = mouse
  614. /ontrialbegin = [values.trialcode = "practicetrial_A"]
  615. /ontrialbegin = [values.targetformat = "blue"]
  616. / ontrialbegin = [values.selectpracticepicture = 1]
  617. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  618. / ontrialbegin = [picture.practicetarget.height = values.startheight_A]
  619. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  620.  
  621. / stimulusframes = [1 = practicetarget]
  622. / validresponse = (mousemove)
  623. /isvalidresponse = [(trial.practicetrial_a.responsey > (values.mouse_y + values.pixeltolerance)) ||
  624. (trial.practicetrial_a.responsey < (values.mouse_y - values.pixeltolerance)) ]
  625.  
  626. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_a.responsey < values.mouse_y) ||
  627. (values.expcondition == 2 && trial.practicetrial_a.responsey > values.mouse_y)]
  628. / errormessage = true(x,0)
  629.  
  630. /ontrialend = [if (trial.practicetrial_a.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  631. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_a.responsey)]
  632. / ontrialend = [values.mouse_y = trial.practicetrial_a.responsey]
  633.  
  634. /ontrialend = [values.RT = trial.practicetrial_A.latency]
  635. /ontrialend = [values.correct = trial.practicetrial_A.correct]
  636. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  637. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  638. else values.initialresponse = "PULL"]
  639.  
  640. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  641. / recorddata = false
  642. </trial>
  643.  
  644. <trial practicetrial_B>
  645. /inputdevice = mouse
  646. /ontrialbegin = [values.trialcode = "practicetrial_B"]
  647. /ontrialbegin = [values.targetformat = "blue"]
  648. / ontrialbegin = [values.selectpracticepicture = 2]
  649. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  650. / ontrialbegin = [picture.practicetarget.height = values.startheight_B]
  651. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  652.  
  653. / stimulusframes = [1 = practicetarget]
  654. / validresponse = (mousemove)
  655. /isvalidresponse = [(trial.practicetrial_B.responsey > (values.mouse_y + values.pixeltolerance)) ||
  656. (trial.practicetrial_B.responsey < (values.mouse_y - values.pixeltolerance)) ]
  657.  
  658. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_B.responsey < values.mouse_y) ||
  659. (values.expcondition == 2 && trial.practicetrial_B.responsey > values.mouse_y)]
  660. / errormessage = true(x,0)
  661.  
  662. /ontrialend = [if (trial.practicetrial_B.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  663. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_B.responsey)]
  664. / ontrialend = [values.mouse_y = trial.practicetrial_B.responsey]
  665.  
  666. /ontrialend = [values.RT = trial.practicetrial_B.latency]
  667. /ontrialend = [values.correct = trial.practicetrial_B.correct]
  668. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  669. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  670. else values.initialresponse = "PULL"]
  671.  
  672. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  673. / recorddata = false
  674. </trial>
  675.  
  676. <trial practicetrial_C>
  677. /inputdevice = mouse
  678. /ontrialbegin = [values.trialcode = "practicetrial_C"]
  679. /ontrialbegin = [values.targetformat = "blue"]
  680. / ontrialbegin = [values.selectpracticepicture = 3]
  681. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  682. / ontrialbegin = [picture.practicetarget.height = values.startheight_C]
  683. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  684.  
  685. / stimulusframes = [1 = practicetarget]
  686. / validresponse = (mousemove)
  687. /isvalidresponse = [(trial.practicetrial_C.responsey > (values.mouse_y + values.pixeltolerance)) ||
  688. (trial.practicetrial_C.responsey < (values.mouse_y - values.pixeltolerance)) ]
  689.  
  690. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_C.responsey < values.mouse_y) ||
  691. (values.expcondition == 2 && trial.practicetrial_C.responsey > values.mouse_y)]
  692. / errormessage = true(x,0)
  693.  
  694. /ontrialend = [if (trial.practicetrial_C.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  695. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_C.responsey)]
  696. / ontrialend = [values.mouse_y = trial.practicetrial_C.responsey]
  697.  
  698. /ontrialend = [values.RT = trial.practicetrial_C.latency]
  699. /ontrialend = [values.correct = trial.practicetrial_C.correct]
  700. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  701. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  702. else values.initialresponse = "PULL"]
  703.  
  704. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  705. / recorddata = false
  706. </trial>
  707.  
  708. <trial practicetrial_D>
  709. /inputdevice = mouse
  710. /ontrialbegin = [values.trialcode = "practicetrial_D"]
  711. /ontrialbegin = [values.targetformat = "blue"]
  712. / ontrialbegin = [values.selectpracticepicture = 4]
  713. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  714. / ontrialbegin = [picture.practicetarget.height = values.startheight_D]
  715. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  716.  
  717. / stimulusframes = [1 = practicetarget]
  718. / validresponse = (mousemove)
  719. /isvalidresponse = [(trial.practicetrial_D.responsey > (values.mouse_y + values.pixeltolerance)) ||
  720. (trial.practicetrial_D.responsey < (values.mouse_y - values.pixeltolerance)) ]
  721.  
  722. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_D.responsey < values.mouse_y) ||
  723. (values.expcondition == 2 && trial.practicetrial_D.responsey > values.mouse_y)]
  724. / errormessage = true(x,0)
  725.  
  726. /ontrialend = [if (trial.practicetrial_D.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  727. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_D.responsey)]
  728. / ontrialend = [values.mouse_y = trial.practicetrial_D.responsey]
  729.  
  730. /ontrialend = [values.RT = trial.practicetrial_D.latency]
  731. /ontrialend = [values.correct = trial.practicetrial_D.correct]
  732. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  733. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  734. else values.initialresponse = "PULL"]
  735.  
  736. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  737. / recorddata = false
  738. </trial>
  739.  
  740. <trial practicetrial_E>
  741. /inputdevice = mouse
  742. /ontrialbegin = [values.trialcode = "practicetrial_E"]
  743. /ontrialbegin = [values.targetformat = "blue"]
  744. / ontrialbegin = [values.selectpracticepicture = 5]
  745. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  746. / ontrialbegin = [picture.practicetarget.height = values.startheight_E]
  747. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  748.  
  749. / stimulusframes = [1 = practicetarget]
  750. / validresponse = (mousemove)
  751. /isvalidresponse = [(trial.practicetrial_E.responsey > (values.mouse_y + values.pixeltolerance)) ||
  752. (trial.practicetrial_E.responsey < (values.mouse_y - values.pixeltolerance)) ]
  753.  
  754. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_E.responsey < values.mouse_y) ||
  755. (values.expcondition == 2 && trial.practicetrial_E.responsey > values.mouse_y)]
  756. / errormessage = true(x,0)
  757.  
  758. /ontrialend = [if (trial.practicetrial_E.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  759. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_E.responsey)]
  760. / ontrialend = [values.mouse_y = trial.practicetrial_E.responsey]
  761.  
  762. /ontrialend = [values.RT = trial.practicetrial_E.latency]
  763. /ontrialend = [values.correct = trial.practicetrial_E.correct]
  764. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  765. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  766. else values.initialresponse = "PULL"]
  767.  
  768. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  769. / recorddata = false
  770. </trial>
  771.  
  772. <trial practicetrial_F>
  773. /inputdevice = mouse
  774. /ontrialbegin = [values.trialcode = "practicetrial_F"]
  775. /ontrialbegin = [values.targetformat = "violet"]
  776. / ontrialbegin = [values.selectpracticepicture = 6]
  777. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  778. / ontrialbegin = [picture.practicetarget.height = values.startheight_F]
  779. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  780.  
  781. / stimulusframes = [1 = practicetarget]
  782. / validresponse = (mousemove)
  783. /isvalidresponse = [(trial.practicetrial_F.responsey > (values.mouse_y + values.pixeltolerance)) ||
  784. (trial.practicetrial_F.responsey < (values.mouse_y - values.pixeltolerance)) ]
  785.  
  786. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_F.responsey > values.mouse_y) ||
  787. (values.expcondition == 2 && trial.practicetrial_F.responsey < values.mouse_y)]
  788. / errormessage = true(x,0)
  789.  
  790. /ontrialend = [if (trial.practicetrial_F.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  791. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_F.responsey)]
  792. / ontrialend = [values.mouse_y = trial.practicetrial_F.responsey]
  793.  
  794. /ontrialend = [values.RT = trial.practicetrial_F.latency]
  795. /ontrialend = [values.correct = trial.practicetrial_F.correct]
  796. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  797. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  798. else values.initialresponse = "PULL"]
  799.  
  800. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  801. / recorddata = false
  802. </trial>
  803.  
  804. <trial practicetrial_G>
  805. /inputdevice = mouse
  806. /ontrialbegin = [values.trialcode = "practicetrial_G"]
  807. /ontrialbegin = [values.targetformat = "violet"]
  808. / ontrialbegin = [values.selectpracticepicture = 7]
  809. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  810. / ontrialbegin = [picture.practicetarget.height = values.startheight_G]
  811. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  812.  
  813. / stimulusframes = [1 = practicetarget]
  814. / validresponse = (mousemove)
  815. /isvalidresponse = [(trial.practicetrial_G.responsey > (values.mouse_y + values.pixeltolerance)) ||
  816. (trial.practicetrial_G.responsey < (values.mouse_y - values.pixeltolerance)) ]
  817.  
  818. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_G.responsey > values.mouse_y) ||
  819. (values.expcondition == 2 && trial.practicetrial_G.responsey < values.mouse_y)]
  820. / errormessage = true(x,0)
  821.  
  822. /ontrialend = [if (trial.practicetrial_G.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  823. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_G.responsey)]
  824. / ontrialend = [values.mouse_y = trial.practicetrial_G.responsey]
  825.  
  826. /ontrialend = [values.RT = trial.practicetrial_G.latency]
  827. /ontrialend = [values.correct = trial.practicetrial_G.correct]
  828. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  829. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  830. else values.initialresponse = "PULL"]
  831.  
  832. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  833. / recorddata = false
  834. </trial>
  835.  
  836. <trial practicetrial_H>
  837. /inputdevice = mouse
  838. /ontrialbegin = [values.trialcode = "practicetrial_H"]
  839. /ontrialbegin = [values.targetformat = "violet"]
  840. / ontrialbegin = [values.selectpracticepicture = 8]
  841. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  842. / ontrialbegin = [picture.practicetarget.height = values.startheight_H]
  843. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  844.  
  845. / stimulusframes = [1 = practicetarget]
  846. / validresponse = (mousemove)
  847. /isvalidresponse = [(trial.practicetrial_H.responsey > (values.mouse_y + values.pixeltolerance)) ||
  848. (trial.practicetrial_H.responsey < (values.mouse_y - values.pixeltolerance)) ]
  849.  
  850. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_H.responsey > values.mouse_y) ||
  851. (values.expcondition == 2 && trial.practicetrial_H.responsey < values.mouse_y)]
  852. / errormessage = true(x,0)
  853.  
  854. /ontrialend = [if (trial.practicetrial_H.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  855. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_H.responsey)]
  856. / ontrialend = [values.mouse_y = trial.practicetrial_H.responsey]
  857.  
  858. /ontrialend = [values.RT = trial.practicetrial_H.latency]
  859. /ontrialend = [values.correct = trial.practicetrial_H.correct]
  860. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  861. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  862. else values.initialresponse = "PULL"]
  863.  
  864. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  865. / recorddata = false
  866. </trial>
  867.  
  868. <trial practicetrial_I>
  869. /inputdevice = mouse
  870. /ontrialbegin = [values.trialcode = "practicetrial_I"]
  871. /ontrialbegin = [values.targetformat = "violet"]
  872. / ontrialbegin = [values.selectpracticepicture = 9]
  873. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  874. / ontrialbegin = [picture.practicetarget.height = values.startheight_I]
  875. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  876.  
  877. / stimulusframes = [1 = practicetarget]
  878. / validresponse = (mousemove)
  879. /isvalidresponse = [(trial.practicetrial_I.responsey > (values.mouse_y + values.pixeltolerance)) ||
  880. (trial.practicetrial_I.responsey < (values.mouse_y - values.pixeltolerance)) ]
  881.  
  882. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_I.responsey > values.mouse_y) ||
  883. (values.expcondition == 2 && trial.practicetrial_I.responsey < values.mouse_y)]
  884. / errormessage = true(x,0)
  885.  
  886. /ontrialend = [if (trial.practicetrial_I.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  887. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_I.responsey)]
  888. / ontrialend = [values.mouse_y = trial.practicetrial_I.responsey]
  889.  
  890. /ontrialend = [values.RT = trial.practicetrial_I.latency]
  891. /ontrialend = [values.correct = trial.practicetrial_I.correct]
  892. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  893. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  894. else values.initialresponse = "PULL"]
  895.  
  896. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  897. / recorddata = false
  898. </trial>
  899.  
  900. <trial practicetrial_J>
  901. /inputdevice = mouse
  902. /ontrialbegin = [values.trialcode = "practicetrial_J"]
  903. /ontrialbegin = [values.targetformat = "violet"]
  904. / ontrialbegin = [values.selectpracticepicture = 10]
  905. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  906. / ontrialbegin = [picture.practicetarget.height = values.startheight_J]
  907. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  908.  
  909. / stimulusframes = [1 = practicetarget]
  910. / validresponse = (mousemove)
  911. /isvalidresponse = [(trial.practicetrial_J.responsey > (values.mouse_y + values.pixeltolerance)) ||
  912. (trial.practicetrial_J.responsey < (values.mouse_y - values.pixeltolerance)) ]
  913.  
  914. / iscorrectresponse = [(values.expcondition == 1 && trial.practicetrial_J.responsey > values.mouse_y) ||
  915. (values.expcondition == 2 && trial.practicetrial_J.responsey < values.mouse_y)]
  916. / errormessage = true(x,0)
  917.  
  918. /ontrialend = [if (trial.practicetrial_J.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  919. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicetrial_J.responsey)]
  920. / ontrialend = [values.mouse_y = trial.practicetrial_J.responsey]
  921.  
  922. /ontrialend = [values.RT = trial.practicetrial_J.latency]
  923. /ontrialend = [values.correct = trial.practicetrial_J.correct]
  924. /ontrialend = [values.stimulus = picture.practicetarget.currentitem]
  925. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  926. else values.initialresponse = "PULL"]
  927.  
  928. / branch = [if (values.response == 1) trial.practicedecrease else trial.practiceincrease]
  929. / recorddata = false
  930. </trial>
  931.  
  932. *********ZOOM FEATURE: trial increase/decrease the size of the rectangles depending on participant's response*********
  933.  
  934. <trial practicedecrease>
  935. /inputdevice = mouse
  936. /ontrialbegin = [if (values.expcondition == 1 && values.targetformat == "violet") trial.practicedecrease.insertstimulustime(text.x, 0)]
  937. /ontrialbegin = [if (values.expcondition == 2 && values.targetformat == "blue") trial.practicedecrease.insertstimulustime(text.x, 0)]
  938.  
  939. / ontrialbegin = [picture.practicetarget.height = picture.practicetarget.height - values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  940. / stimulusframes = [1 = eraser, practicetarget]
  941. /validresponse = (mousemove)
  942.  
  943. /ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practicedecrease.responsey)]
  944.  
  945. /ontrialend = [trial.practicedecrease.resetstimulusframes()]
  946.  
  947.  
  948. /branch = [if (script.subjectid == "monkey") {values.endtime = script.elapsedtime; values.finalresponse = "PUSH"; trial.intertrialinterval}]
  949.  
  950. /branch = [if (trial.practicedecrease.responsey <= 0)
  951. {values.mouse_y = trial.practicedecrease.responsey; values.endtime = script.elapsedtime; values.finalresponse = "PUSH"; trial.enddecrease_practice}]
  952. /branch = [if (trial.practicedecrease.responsey <= values.mouse_y)
  953. {values.mouse_y = trial.practicedecrease.responsey; trial.practicedecrease}]
  954. /branch = [if (trial.practicedecrease.responsey > values.mouse_y)
  955. {values.mouse_y = trial.practicedecrease.responsey; values.changedirection += 1; trial.practiceincrease}]
  956.  
  957. / recorddata = false
  958. </trial>
  959.  
  960. <trial practiceincrease>
  961. /inputdevice = mouse
  962. /ontrialbegin = [if (values.expcondition == 1 && values.targetformat == "blue") trial.practiceincrease.insertstimulustime(text.x, 0)]
  963. /ontrialbegin = [if (values.expcondition == 2 && values.targetformat == "violet") trial.practiceincrease.insertstimulustime(text.x, 0)]
  964.  
  965. / ontrialbegin = [picture.practicetarget.height = picture.practicetarget.height + values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  966. / stimulusframes = [1 = practicetarget]
  967. /validresponse = (mousemove)
  968. /ontrialend = [values.mouse_change = abs(values.mouse_y - trial.practiceincrease.responsey)]
  969.  
  970. /ontrialend = [trial.practiceincrease.resetstimulusframes()]
  971.  
  972. /branch = [if (script.subjectid == "monkey") {values.endtime = script.elapsedtime; values.finalresponse = "PULL"; trial.intertrialinterval}]
  973. /branch = [if (trial.practiceincrease.responsey >= values.maxheight-1)
  974. {values.mouse_y = trial.practiceincrease.responsey; values.endtime = script.elapsedtime; values.finalresponse = "PULL"; trial.endincrease_practice}]
  975. /branch = [if (trial.practiceincrease.responsey >= values.mouse_y)
  976. {values.mouse_y = trial.practiceincrease.responsey; trial.practiceincrease}]
  977. /branch = [if (trial.practiceincrease.responsey < values.mouse_y)
  978. {values.mouse_y = trial.practiceincrease.responsey; values.changedirection += 1; trial.practicedecrease}]
  979. /recorddata = false
  980. </trial>
  981.  
  982.  
  983. Note: trials show the last size of the picture
  984. <trial endincrease_practice>
  985. / ontrialbegin = [picture.practicetarget.height = picture.practicetarget.height + values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  986. /stimulusframes = [1 = practicetarget]
  987. /timeout = 0
  988. /branch = [trial.intertrialinterval]
  989. /recorddata = false
  990. </trial>
  991.  
  992. <trial enddecrease_practice>
  993. /ontrialbegin = [picture.practicetarget.height = picture.practicetarget.height - values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  994. /stimulusframes = [1 = eraser, practicetarget]
  995. /timeout = 0
  996. /branch = [trial.intertrialinterval]
  997. /recorddata = false
  998. </trial>
  999. *************************
  1000. Practice Block
  1001. *************************
  1002. NOTE:
  1003. block.practice_AAT presents 10 practice trials randomly (without replacement) selecting
  1004. from format A (landscape) (N=5) and format B (portrait) stimuli (N=5)
  1005. <block practice_AAT>
  1006. /preinstructions = (intro, practice)
  1007. / trials = [1-20 = noreplace(practicestartA, practicestartB, practicestartC, practicestartD, practicestartE, practicestartF, practicestartG, practicestartH, practicestartI, practicestartJ)]
  1008. </block>
  1009.  
  1010. **************************************************************************************************************
  1011. **************************************************************************************************************
  1012. AAT EXPERIMENTAL TRIALS
  1013. **************************************************************************************************************
  1014. **************************************************************************************************************
  1015. Trial Sequence for each targetstimulus:
  1016. trial.AAT_start -> (e.g.) trial.AAT_1 -> (e.g. depending on response) trial.decrease ->....-> trial.decrease (until a set amount of trial.decrease have run)
  1017.  
  1018. **********************************************************************
  1019. trial that selects the next targetstimulus category (1-8)
  1020. **********************************************************************
  1021. Debug:
  1022. <text nextstimulus>
  1023. / items = ("<%values.nextstimulus%>")
  1024. / position = (50%, 60%)
  1025. / fontstyle = ("Arial", 2.33%, false, false, false, false, 5, 0)
  1026. </text>
  1027.  
  1028.  
  1029. NOTE:
  1030. trial.AAT_start is only necessary if a preestablished sequence of target categories is used
  1031. (either generated at the beginning of the experiment or by selecting from a
  1032. pool of pregenerated sequences). The trial determines the next target
  1033. category via values.nextstimulus and calls the corresponding trial for that category (e.g. trial.AAT_1).
  1034.  
  1035. <trial AAT_start>
  1036. / ontrialbegin = [values.nextstimulus = substring(values.sequence, values.index, 1);
  1037. values.index += 1]
  1038. / ontrialbegin = [values.repeat = 0]
  1039. / timeout = 0
  1040. / branch = [if (values.nextstimulus == 1) trial.AAT_1_start]
  1041. / branch = [if (values.nextstimulus == 2) trial.AAT_2_start]
  1042. / branch = [if (values.nextstimulus == 3) trial.AAT_3_start]
  1043. / branch = [if (values.nextstimulus == 4) trial.AAT_4_start]
  1044. / branch = [if (values.nextstimulus == 5) trial.AAT_5_start]
  1045. / branch = [if (values.nextstimulus == 6) trial.AAT_6_start]
  1046. / recorddata = false
  1047. </trial>
  1048.  
  1049. ************************************************
  1050. Start trials:
  1051.  
  1052. * make sure the mouse cursor is in the middle of the screen by asking participants
  1053. to click on a center stimulus (here:X)
  1054. ************************************************
  1055. <trial AAT_1_start>
  1056. /inputdevice = mouse
  1057. /stimulusframes = [1 = instructtext, center]
  1058. /validresponse = (center)
  1059. /ontrialend = [values.mouse_y = trial.AAT_1_start.responsey]
  1060. /recorddata = false
  1061. /branch = [trial.AAT_1]
  1062. </trial>
  1063.  
  1064. <trial AAT_2_start>
  1065. /inputdevice = mouse
  1066. /stimulusframes = [1 = instructtext, center]
  1067. /validresponse = (center)
  1068. /ontrialend = [values.mouse_y = trial.AAT_2_start.responsey]
  1069. /recorddata = false
  1070. /branch = [trial.AAT_2]
  1071. </trial>
  1072.  
  1073. <trial AAT_3_start>
  1074. /inputdevice = mouse
  1075. /stimulusframes = [1 = instructtext, center]
  1076. /validresponse = (center)
  1077. /ontrialend = [values.mouse_y = trial.AAT_3_start.responsey]
  1078. /recorddata = false
  1079. /branch = [trial.AAT_3]
  1080. </trial>
  1081.  
  1082. <trial AAT_4_start>
  1083. /inputdevice = mouse
  1084. /stimulusframes = [1 = instructtext, center]
  1085. /validresponse = (center)
  1086. /ontrialend = [values.mouse_y = trial.AAT_4_start.responsey]
  1087. /recorddata = false
  1088. /branch = [trial.AAT_4]
  1089. </trial>
  1090.  
  1091. <trial AAT_5_start>
  1092. /inputdevice = mouse
  1093. /stimulusframes = [1 = instructtext, center]
  1094. /validresponse = (center)
  1095. /ontrialend = [values.mouse_y = trial.AAT_5_start.responsey]
  1096. /recorddata = false
  1097. /branch = [trial.AAT_5]
  1098. </trial>
  1099.  
  1100. <trial AAT_6_start>
  1101. /inputdevice = mouse
  1102. /stimulusframes = [1 = instructtext, center]
  1103. /validresponse = (center)
  1104. /ontrialend = [values.mouse_y = trial.AAT_6_start.responsey]
  1105. /recorddata = false
  1106. /branch = [trial.AAT_6]
  1107. </trial>
  1108.  
  1109. **********************************************************************
  1110. trials that select targetstimuli via list.categoryX
  1111. and take in initial response (move mouse away vs. mouse mouse closer)
  1112.  
  1113. Note: if error feedback should be given, include
  1114. / errormessage = true(error,0) in each of the following trials
  1115. **********************************************************************
  1116.  
  1117. <trial AAT_1>
  1118. /inputdevice = mouse
  1119. / ontrialbegin = [values.trialcode = "AAT_1"]
  1120. / ontrialbegin = [values.selectstimulus = list.category1.nextvalue]
  1121. / ontrialbegin = [values.targetcategory = 1; values.targetformat = "blue"]
  1122. / ontrialbegin = [picture.targetstimulus.height = values.startheight_A]
  1123.  
  1124. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  1125. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  1126.  
  1127. / stimulusframes = [1 = targetstimulus]
  1128. / validresponse = (mousemove)
  1129. /isvalidresponse = [(trial.AAT_1.responsey > (values.mouse_y + values.pixeltolerance)) ||
  1130. (trial.AAT_1.responsey < (values.mouse_y - values.pixeltolerance)) ]
  1131. / iscorrectresponse = [(values.expcondition == 1 && trial.AAT_1.responsey < values.mouse_y) ||
  1132. (values.expcondition == 2 && trial.AAT_1.responsey > values.mouse_y)]
  1133.  
  1134. / ontrialend = [if (trial.AAT_1.correct) values.sumRTcorrect_1 += trial.AAT_1.latency]
  1135. / ontrialend = [values.sumRT_1 += trial.AAT_1.latency]
  1136.  
  1137. /ontrialend = [if (trial.AAT_1.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  1138. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.AAT_1.responsey)]
  1139. / ontrialend = [values.mouse_y = trial.AAT_1.responsey]
  1140.  
  1141. / ontrialend = [values.RT = trial.AAT_1.latency]
  1142. / ontrialend = [values.correct = trial.AAT_1.correct]
  1143. / ontrialend = [values.stimulus = picture.targetstimulus.currentitem]
  1144.  
  1145. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  1146. else values.initialresponse = "PULL"]
  1147. / branch = [if (values.response == 1) trial.decrease else trial.increase]
  1148. /recorddata = false
  1149. </trial>
  1150.  
  1151.  
  1152. <trial AAT_2>
  1153. /inputdevice = mouse
  1154. / ontrialbegin = [values.selectstimulus = list.category2.nextvalue]
  1155. / ontrialbegin = [values.targetcategory = 1; values.targetformat = "violet"]
  1156. / ontrialbegin = [picture.targetstimulus.height = values.startheight_B]
  1157.  
  1158. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  1159. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  1160.  
  1161. / stimulusframes = [1 = targetstimulus]
  1162. / validresponse = (mousemove)
  1163. /isvalidresponse = [(trial.AAT_2.responsey > (values.mouse_y + values.pixeltolerance)) ||
  1164. (trial.AAT_2.responsey < (values.mouse_y - values.pixeltolerance)) ]
  1165. / iscorrectresponse = [(values.expcondition == 1 && trial.AAT_2.responsey > values.mouse_y) ||
  1166. (values.expcondition == 2 && trial.AAT_2.responsey < values.mouse_y)]
  1167.  
  1168. /ontrialend = [if (trial.AAT_2.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  1169. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.AAT_2.responsey)]
  1170. / ontrialend = [values.mouse_y = trial.AAT_2.responsey]
  1171.  
  1172. / ontrialend = [if (trial.AAT_2.correct) values.sumRTcorrect_2 += trial.AAT_2.latency]
  1173. / ontrialend = [values.sumRT_2 += trial.AAT_2.latency]
  1174.  
  1175. / ontrialend = [values.trialcode = "AAT_2"]
  1176. / ontrialend = [values.RT = trial.AAT_2.latency]
  1177. / ontrialend = [values.correct = trial.AAT_2.correct]
  1178. / ontrialend = [values.stimulus = picture.targetstimulus.currentitem]
  1179.  
  1180. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  1181. else values.initialresponse = "PULL"]
  1182.  
  1183. / branch = [if (values.response == 1) trial.decrease else trial.increase]
  1184. /recorddata = false
  1185. </trial>
  1186.  
  1187.  
  1188. <trial AAT_3>
  1189. /inputdevice = mouse
  1190. / ontrialbegin = [values.trialcode = "AAT_3"]
  1191. / ontrialbegin = [values.selectstimulus = list.category3.nextvalue]
  1192. / ontrialbegin = [values.targetcategory = 2; values.targetformat = "blue"]
  1193. / ontrialbegin = [picture.targetstimulus.height = values.startheight_A]
  1194.  
  1195. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  1196. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  1197.  
  1198. / stimulusframes = [1 = targetstimulus]
  1199. / validresponse = (mousemove)
  1200. /isvalidresponse = [(trial.AAT_3.responsey > (values.mouse_y + values.pixeltolerance)) ||
  1201. (trial.AAT_3.responsey < (values.mouse_y - values.pixeltolerance)) ]
  1202. / iscorrectresponse = [(values.expcondition == 1 && trial.AAT_3.responsey < values.mouse_y) ||
  1203. (values.expcondition == 2 && trial.AAT_3.responsey > values.mouse_y)]
  1204.  
  1205. / ontrialend = [if (trial.AAT_3.correct) values.sumRTcorrect_3 += trial.AAT_3.latency]
  1206. / ontrialend = [values.sumRT_3 += trial.AAT_3.latency]
  1207.  
  1208. /ontrialend = [if (trial.AAT_3.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  1209. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.AAT_3.responsey)]
  1210. / ontrialend = [values.mouse_y = trial.AAT_3.responsey]
  1211.  
  1212. / ontrialend = [values.RT = trial.AAT_3.latency]
  1213. / ontrialend = [values.correct = trial.AAT_3.correct]
  1214. / ontrialend = [values.stimulus = picture.targetstimulus.currentitem]
  1215.  
  1216. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  1217. else values.initialresponse = "PULL"]
  1218. / branch = [if (values.response == 1) trial.decrease else trial.increase]
  1219. /recorddata = false
  1220. </trial>
  1221.  
  1222.  
  1223. <trial AAT_4>
  1224. /inputdevice = mouse
  1225. / ontrialbegin = [values.selectstimulus = list.category4.nextvalue]
  1226. / ontrialbegin = [values.targetcategory = 2; values.targetformat = "violet"]
  1227. / ontrialbegin = [picture.targetstimulus.height = values.startheight_B]
  1228.  
  1229. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  1230. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  1231.  
  1232. / stimulusframes = [1 = targetstimulus]
  1233. / validresponse = (mousemove)
  1234. /isvalidresponse = [(trial.AAT_4.responsey > (values.mouse_y + values.pixeltolerance)) ||
  1235. (trial.AAT_4.responsey < (values.mouse_y - values.pixeltolerance)) ]
  1236. / iscorrectresponse = [(values.expcondition == 1 && trial.AAT_4.responsey > values.mouse_y) ||
  1237. (values.expcondition == 2 && trial.AAT_4.responsey < values.mouse_y)]
  1238.  
  1239. /ontrialend = [if (trial.AAT_4.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  1240. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.AAT_4.responsey)]
  1241. / ontrialend = [values.mouse_y = trial.AAT_4.responsey]
  1242.  
  1243. / ontrialend = [if (trial.AAT_4.correct) values.sumRTcorrect_4 += trial.AAT_4.latency]
  1244. / ontrialend = [values.sumRT_4 += trial.AAT_4.latency]
  1245.  
  1246. / ontrialend = [values.trialcode = "AAT_4"]
  1247. / ontrialend = [values.RT = trial.AAT_4.latency]
  1248. / ontrialend = [values.correct = trial.AAT_4.correct]
  1249. / ontrialend = [values.stimulus = picture.targetstimulus.currentitem]
  1250.  
  1251. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  1252. else values.initialresponse = "PULL"]
  1253.  
  1254. / branch = [if (values.response == 1) trial.decrease else trial.increase]
  1255. /recorddata = false
  1256. </trial>
  1257.  
  1258.  
  1259. <trial AAT_5>
  1260. /inputdevice = mouse
  1261. / ontrialbegin = [values.trialcode = "AAT_5"]
  1262. / ontrialbegin = [values.selectstimulus = list.category5.nextvalue]
  1263. / ontrialbegin = [values.targetcategory = 3; values.targetformat = "blue"]
  1264. / ontrialbegin = [picture.targetstimulus.height = values.startheight_A]
  1265. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  1266. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  1267.  
  1268. / stimulusframes = [1 = targetstimulus]
  1269. / validresponse = (mousemove)
  1270. /isvalidresponse = [(trial.AAT_5.responsey > (values.mouse_y + values.pixeltolerance)) ||
  1271. (trial.AAT_5.responsey < (values.mouse_y - values.pixeltolerance)) ]
  1272. / iscorrectresponse = [(values.expcondition == 1 && trial.AAT_5.responsey < values.mouse_y) ||
  1273. (values.expcondition == 2 && trial.AAT_5.responsey > values.mouse_y)]
  1274.  
  1275. / ontrialend = [if (trial.AAT_5.correct) values.sumRTcorrect_5 += trial.AAT_5.latency]
  1276. / ontrialend = [values.sumRT_5 += trial.AAT_5.latency]
  1277.  
  1278. /ontrialend = [if (trial.AAT_5.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  1279. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.AAT_5.responsey)]
  1280. / ontrialend = [values.mouse_y = trial.AAT_5.responsey]
  1281.  
  1282. / ontrialend = [values.RT = trial.AAT_5.latency]
  1283. / ontrialend = [values.correct = trial.AAT_5.correct]
  1284. / ontrialend = [values.stimulus = picture.targetstimulus.currentitem]
  1285.  
  1286. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  1287. else values.initialresponse = "PULL"]
  1288. / branch = [if (values.response == 1) trial.decrease else trial.increase]
  1289. /recorddata = false
  1290. </trial>
  1291.  
  1292.  
  1293. <trial AAT_6>
  1294. /inputdevice = mouse
  1295. / ontrialbegin = [values.selectstimulus = list.category6.nextvalue]
  1296. / ontrialbegin = [values.targetcategory = 3; values.targetformat = "violet"]
  1297. / ontrialbegin = [picture.targetstimulus.height = values.startheight_B]
  1298.  
  1299. / ontrialbegin = [values.starttime = script.elapsedtime; values.endtime = 0]
  1300. / ontrialbegin = [values.completeRT = 0; values.changedirection = 0; values.finalresponse=""]
  1301.  
  1302. / stimulusframes = [1 = targetstimulus]
  1303. / validresponse = (mousemove)
  1304. /isvalidresponse = [(trial.AAT_6.responsey > (values.mouse_y + values.pixeltolerance)) ||
  1305. (trial.AAT_6.responsey < (values.mouse_y - values.pixeltolerance)) ]
  1306. / iscorrectresponse = [(values.expcondition == 1 && trial.AAT_6.responsey > values.mouse_y) ||
  1307. (values.expcondition == 2 && trial.AAT_6.responsey < values.mouse_y)]
  1308.  
  1309. /ontrialend = [if (trial.AAT_6.responsey < values.mouse_y) values.response = 1 else values.response = 2]
  1310. / ontrialend = [values.mouse_change = abs(values.mouse_y - trial.AAT_6.responsey)]
  1311. / ontrialend = [values.mouse_y = trial.AAT_6.responsey]
  1312.  
  1313. / ontrialend = [if (trial.AAT_6.correct) values.sumRTcorrect_6 += trial.AAT_6.latency]
  1314. / ontrialend = [values.sumRT_6 += trial.AAT_6.latency]
  1315.  
  1316. / ontrialend = [values.trialcode = "AAT_6"]
  1317. / ontrialend = [values.RT = trial.AAT_6.latency]
  1318. / ontrialend = [values.correct = trial.AAT_6.correct]
  1319. / ontrialend = [values.stimulus = picture.targetstimulus.currentitem]
  1320.  
  1321. /ontrialend = [if (values.response == 1) values.initialresponse = "PUSH"
  1322. else values.initialresponse = "PULL"]
  1323.  
  1324. / branch = [if (values.response == 1) trial.decrease else trial.increase]
  1325. /recorddata = false
  1326. </trial>
  1327.  
  1328.  
  1329. **********************************************************************
  1330. ZOOM trials that control the size changes of the target stimuli
  1331. as dictated by response; zoom trials come to an end when the
  1332. mouse cursor has reached either end of the monitor height
  1333. **********************************************************************
  1334.  
  1335. <trial decrease>
  1336. /inputdevice = mouse
  1337. / ontrialbegin = [picture.targetstimulus.height = picture.targetstimulus.height - values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  1338.  
  1339. / stimulusframes = [1 = eraser, targetstimulus]
  1340. /validresponse = (mousemove)
  1341. /ontrialend = [values.mouse_change = abs(values.mouse_y - trial.decrease.responsey)]
  1342.  
  1343. /ontrialend = [trial.decrease.resetstimulusframes()]
  1344.  
  1345. /branch = [if (script.subjectid == "monkey") {values.endtime = script.elapsedtime; values.finalresponse = "PUSH"; trial.intertrialinterval}]
  1346.  
  1347. /branch = [if (trial.decrease.responsey <= 1)
  1348. {values.mouse_y = trial.decrease.responsey; values.endtime = script.elapsedtime; values.finalresponse = "PUSH"; trial.enddecrease}]
  1349. /branch = [if (trial.decrease.responsey <= values.mouse_y)
  1350. {values.mouse_y = trial.decrease.responsey; trial.decrease}]
  1351. /branch = [if (trial.decrease.responsey > values.mouse_y)
  1352. {values.mouse_y = trial.decrease.responsey; values.changedirection += 1; trial.increase}]
  1353.  
  1354. / recorddata = false
  1355. </trial>
  1356.  
  1357.  
  1358. <trial increase>
  1359. / ontrialbegin = [picture.targetstimulus.height = picture.targetstimulus.height + values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  1360. / stimulusframes = [1 = targetstimulus]
  1361. /validresponse = (mousemove)
  1362. /ontrialend = [values.mouse_change = abs(values.mouse_y - trial.increase.responsey)]
  1363.  
  1364. /ontrialend = [trial.increase.resetstimulusframes()]
  1365.  
  1366. /branch = [if (script.subjectid == "monkey") {values.endtime = script.elapsedtime; values.finalresponse = "PULL"; trial.intertrialinterval}]
  1367.  
  1368. /branch = [if (trial.increase.responsey >= values.maxheight-1)
  1369. {values.mouse_y = trial.increase.responsey; values.endtime = script.elapsedtime; values.finalresponse = "PULL"; trial.endincrease}]
  1370. /branch = [if (trial.increase.responsey >= values.mouse_y)
  1371. {values.mouse_y = trial.increase.responsey; trial.increase}]
  1372. /branch = [if (trial.increase.responsey < values.mouse_y)
  1373. {values.mouse_y = trial.increase.responsey; values.changedirection += 1; trial.decrease}]
  1374. /recorddata = false
  1375. </trial>
  1376.  
  1377. Note: trials show the last size of the picture
  1378. <trial endincrease>
  1379. / ontrialbegin = [picture.targetstimulus.height = picture.targetstimulus.height + values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  1380. /stimulusframes = [1 = targetstimulus]
  1381. /timeout = 0
  1382. /branch = [trial.intertrialinterval]
  1383. /recorddata = false
  1384. </trial>
  1385.  
  1386. <trial enddecrease>
  1387. /ontrialbegin = [picture.targetstimulus.height = picture.targetstimulus.height - values.mouse_change/(values.maxheight/2) * expressions.maxheightchange_px]
  1388. /stimulusframes = [1 = eraser, targetstimulus]
  1389. /timeout = 0
  1390. /branch = [trial.intertrialinterval]
  1391. /recorddata = false
  1392. </trial>
  1393. **********************************************************************
  1394. Helper Trials:
  1395. *trial. InterTrialInterval : sets a predetermined InterTrialInterval
  1396. (and stores all relevant data in the data file to have one complete dataline for each trial)
  1397. **********************************************************************
  1398.  
  1399. <trial InterTrialInterval>
  1400. /ontrialbegin = [values.completeRT= values.endtime - values.starttime]
  1401. / stimulusframes = [1 = eraser]
  1402. / timeout = values.intertrialinterval
  1403. / recorddata = true
  1404. </trial>
  1405.  
  1406. **************************************************************************************************************
  1407. **************************************************************************************************************
  1408. AAT EXPERIMENTAL BLOCKS
  1409. **************************************************************************************************************
  1410. **************************************************************************************************************
  1411. <block AAT>
  1412. /preinstructions = (taskinstructions)
  1413. / onblockbegin = [values.index = 0]
  1414. / trials = [1-80 = AAT_start]
  1415. </block>
  1416.  
  1417. **************************************************************************************************************
  1418. **************************************************************************************************************
  1419. EXPERIMENT
  1420. **************************************************************************************************************
  1421. **************************************************************************************************************
  1422. NOTE:
  1423. format/direction counterbalanced by group number
  1424.  
  1425. <expt >
  1426. / onexptbegin = [values.expcondition = 1]
  1427. / onexptbegin = [values.format1 = "VIOLETTEM"; values.format2 = "BLAUEM"]
  1428. / subjects = (1 of 2)
  1429. /groupassignment = groupnumber
  1430. / onexptbegin = [values.startheight_A = values.Startheight_ratioA* values.maxheight]
  1431. / onexptbegin = [values.startheight_B = values.Startheight_ratioB* values.maxheight]
  1432. / onexptbegin = [values.startheight_C = values.Startheight_ratioC* values.maxheight]
  1433. / onexptbegin = [values.startheight_D = values.Startheight_ratioD* values.maxheight]
  1434. / onexptbegin = [values.startheight_E = values.Startheight_ratioE* values.maxheight]
  1435. / onexptbegin = [values.startheight_F = values.Startheight_ratioF* values.maxheight]
  1436. / onexptbegin = [values.startheight_G = values.Startheight_ratioG* values.maxheight]
  1437. / onexptbegin = [values.startheight_H = values.Startheight_ratioH* values.maxheight]
  1438. / onexptbegin = [values.startheight_I = values.Startheight_ratioI* values.maxheight]
  1439. / onexptbegin = [values.startheight_J = values.Startheight_ratioJ* values.maxheight]
  1440. / blocks = [1 = SequenceGenerator; 2 = practice_AAT; 3 = AAT]
  1441. / postinstructions = (End)
  1442. </expt>
  1443.  
  1444. <expt >
  1445. / onexptbegin = [values.expcondition = 2]
  1446. / onexptbegin = [values.format2 = "VIOLETTEM"; values.format1 = "BLAUEM"]
  1447. / subjects = (2 of 2)
  1448. /groupassignment = groupnumber
  1449. / onexptbegin = [values.startheight_A = values.Startheight_ratioA* values.maxheight]
  1450. / onexptbegin = [values.startheight_B = values.Startheight_ratioB* values.maxheight]
  1451. / onexptbegin = [values.startheight_C = values.Startheight_ratioC* values.maxheight]
  1452. / onexptbegin = [values.startheight_D = values.Startheight_ratioD* values.maxheight]
  1453. / onexptbegin = [values.startheight_E = values.Startheight_ratioE* values.maxheight]
  1454. / onexptbegin = [values.startheight_F = values.Startheight_ratioF* values.maxheight]
  1455. / onexptbegin = [values.startheight_G = values.Startheight_ratioG* values.maxheight]
  1456. / onexptbegin = [values.startheight_H = values.Startheight_ratioH* values.maxheight]
  1457. / onexptbegin = [values.startheight_I = values.Startheight_ratioI* values.maxheight]
  1458. / onexptbegin = [values.startheight_J = values.Startheight_ratioJ* values.maxheight]
  1459. / blocks = [1 = SequenceGenerator; 2 = practice_AAT; 3 = AAT]
  1460. / postinstructions = (End)
  1461. </expt>
  1462.  
  1463. **************************************************************************************************************
  1464. **************************************************************************************************************
  1465. TRIAL SEQUENCE GENERATION CODE:
  1466. **************************************************************************************************************
  1467. **************************************************************************************************************
  1468. The trial sequence generation code generates a sequence of trials that fulfills the following
  1469. constraints:
  1470. 1) 10 stimuli of category 1 in Format A (=1), 10 stimuli of category 1 in Format B (=2),
  1471. 10 stimuli of category 2 in Format A (=3), 10 stimuli of category 1 in Format B (=4),
  1472. 10 stimuli of category 3 in Format A (=5), 10 stimuli of category 1 in Format B (=6),
  1473. 10 stimuli of category 4 in Format A (=7), 10 stimuli of category 1 in Format B (=8),
  1474. 2) no more than three consecutive stimuli of the same category
  1475. 3) no more than three consecutive stimuli of the same format
  1476.  
  1477. the sequences produced look something like this:
  1478. 868546276815347238341865316174854225166758252358517483251343227374137614617876
  1479.  
  1480. NOTE:
  1481. !!!! The time to generate the appropriate sequence will differ between participants.
  1482. Two alternatives are:
  1483. 1) pregenerated sequences.
  1484. For example, you could generate 100 of these sequences (run this code in a separate script),
  1485. store the sequences in an item element and select randomly from these sequences for each
  1486. participant.
  1487. 2) run the experiment with simple random sampling
  1488. (without replacement) without paying attention to the added constraints
  1489. regarding category/format repetitions.
  1490.  
  1491. This trialsequence algorithm is relatively simple and may
  1492. reach its limits if more conditions/trials are added. In this case,
  1493. a new algorithm may have to be written or any of the two alternatives has
  1494. to be used.
  1495.  
  1496. *****************************************************************************
  1497. Values
  1498. *****************************************************************************
  1499. Stimulus sequence generation
  1500. /count1...count8: contains the number of trials per stimuli type
  1501. /runcount_1 ...runcount_4: counts how many consecutive stimuli of the same category
  1502. /runcount_A / runcount_B = 0: counts how many consecutive stimuli of the same format
  1503. /newnumber : the next potential stimulus digit (1-8) for the sequence
  1504. /count_comparecat: helper variable: stores the count of the consecutive stimulus category
  1505. relevant for the selected newnumber
  1506. /count_compareformat : helper variable: stores the count of the consecutive stimulus format
  1507. relevant for the selected newnumber
  1508. /sequence: the stimulus generation sequence
  1509. /index: current position in a string variable, helper variable to get individual items
  1510. out of a string of items
  1511.  
  1512. <values>
  1513. /count1 = 14
  1514. /count2 = 14
  1515. /count3 = 14
  1516. /count4 = 14
  1517. /count5 = 14
  1518. /count6 = 14
  1519. /runcount_1 = 0
  1520. /runcount_2 = 0
  1521. /runcount_3 = 0
  1522. /runcount_4 = 0
  1523. /runcount_A = 0
  1524. /runcount_B = 0
  1525. /newnumber = 0
  1526. /count_comparecat = 0
  1527. /count_compareformat = 0
  1528. /sequence = ""
  1529. /index = 0
  1530. </values>
  1531.  
  1532. *****************************************************************************
  1533. List Stimcats: contains all 80 possible stimuli
  1534. *****************************************************************************
  1535. <list stimcats>
  1536. / items = (
  1537. 1,1,1,1,1,1,1,1,1,1,1,1,1,1
  1538. 2,2,2,2,2,2,2,2,2,2,2,2,2,2,
  1539. 3,3,3,3,3,3,3,3,3,3,3,3,3,3,
  1540. 4,4,4,4,4,4,4,4,4,4,4,4,4,4,
  1541. 5,5,5,5,5,5,5,5,5,5,5,5,5,5,
  1542. 6,6,6,6,6,6,6,6,6,6,6,6,6,6)
  1543. / replace = false
  1544. </list>
  1545.  
  1546. *****************************************************************************
  1547. Trial Selectnumber: selects the newnumber and checks whether
  1548. all constraints are met
  1549. - if all constraints are met: adds new number to sequence
  1550. - constraints are not met: checks whether an alternative number is available that could meet constraint
  1551. => if yes: returns current number to list and tries again
  1552. => if no: starts the sequence over
  1553. *****************************************************************************
  1554. <trial selectnumber>
  1555. / ontrialbegin = [values.newnumber = list.stimcats.nextvalue]
  1556. / ontrialbegin = [values.index += 1]
  1557. / ontrialbegin = [if (values.newnumber == 1)
  1558. {values.runcount_1 += 1;
  1559. values.runcount_A += 1;
  1560. values.count_comparecat = values.runcount_1;
  1561. values.count_compareformat = values.runcount_A;
  1562. values.count1 -=1}]
  1563. / ontrialbegin = [if (values.newnumber ==2)
  1564. {values.runcount_1 += 1;
  1565. values.runcount_B += 1;
  1566. values.count_comparecat = values.runcount_1;
  1567. values.count_compareformat = values.runcount_B;
  1568. values.count2 -=1}]
  1569. / ontrialbegin = [if (values.newnumber ==3)
  1570. {values.runcount_2 += 1;
  1571. values.runcount_A += 1;
  1572. values.count_comparecat = values.runcount_2;
  1573. values.count_compareformat = values.runcount_A;
  1574. values.count3 -= 1}]
  1575. / ontrialbegin = [if (values.newnumber ==4)
  1576. {values.runcount_2 += 1;
  1577. values.runcount_B += 1;
  1578. values.count_comparecat = values.runcount_2;
  1579. values.count_compareformat = values.runcount_B;
  1580. values.count4 -=1}]
  1581. / ontrialbegin = [if (values.newnumber ==5)
  1582. {values.runcount_3 += 1;
  1583. values.runcount_A += 1;
  1584. values.count_comparecat = values.runcount_3;
  1585. values.count_compareformat = values.runcount_A;
  1586. values.count5 -= 1}]
  1587. / ontrialbegin = [if (values.newnumber ==6)
  1588. {values.runcount_3 += 1;
  1589. values.runcount_B += 1;
  1590. values.count_comparecat = values.runcount_3;
  1591. values.count_compareformat = values.runcount_B;
  1592. values.count6 -= 1}]
  1593.  
  1594. /ontrialend = [if (values.count_comparecat < 4 && values.count_compareformat < 4)
  1595. { values.sequence = concat(values.sequence, values.newnumber)}]
  1596.  
  1597. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 1)
  1598. { values.runcount_2 = 0; values.runcount_3 = 0; values.runcount_4 = 0; values.runcount_B = 0;
  1599. trial.selectnumber}]
  1600.  
  1601. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 2)
  1602. { values.runcount_2 = 0; values.runcount_3 = 0; values.runcount_4 = 0; values.runcount_A = 0;
  1603. trial.selectnumber}]
  1604.  
  1605. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 3)
  1606. { values.runcount_1 = 0; values.runcount_3 = 0; values.runcount_4 = 0; values.runcount_B = 0;
  1607. trial.selectnumber}]
  1608.  
  1609. / branch = [if (values.index <= values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 4)
  1610. { values.runcount_1 = 0; values.runcount_3 = 0; values.runcount_4 = 0; values.runcount_A = 0;
  1611. trial.selectnumber}]
  1612.  
  1613. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 5)
  1614. { values.runcount_2 = 0; values.runcount_1 = 0; values.runcount_4 = 0; values.runcount_B = 0;
  1615. trial.selectnumber}]
  1616.  
  1617. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 6)
  1618. { values.runcount_2 = 0; values.runcount_1 = 0; values.runcount_4 = 0; values.runcount_A = 0;
  1619. trial.selectnumber}]
  1620.  
  1621. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 7)
  1622. { values.runcount_2 = 0; values.runcount_3 = 0; values.runcount_1 = 0; values.runcount_B = 0;
  1623. trial.selectnumber}]
  1624.  
  1625. / branch = [if (values.index < values.totaltrialcount && values.count_comparecat < 4 && values.count_compareformat < 4 && values.newnumber == 8)
  1626. { values.runcount_2 = 0; values.runcount_3 = 0; values.runcount_1 = 0; values.runcount_A = 0;
  1627. trial.selectnumber}]
  1628.  
  1629. /branch = [if (values.newnumber == 1 && values.count_comparecat > 3 &&
  1630. (values.count3 != 0 || values.count4 != 0 || values.count5 != 0 || values.count6 != 0 ))
  1631. {values.index -= 1; list.stimcats.insertitem(1, 1); values.runcount_1 -= 1; values.runcount_a -= 1; values.count1 += 1; trial.selectnumber}]
  1632.  
  1633. /branch = [if (values.newnumber == 1 && values.count_compareformat > 3 &&
  1634. (values.count2 != 0 || values.count4 != 0 || values.count6 != 0 ))
  1635. {values.index -= 1;list.stimcats.insertitem(1, 1); values.runcount_1 -= 1; values.runcount_a -= 1; values.count1 += 1; trial.selectnumber}]
  1636.  
  1637. /branch = [if (values.newnumber == 2 && values.count_comparecat > 3 &&
  1638. (values.count3 != 0 || values.count4 != 0 || values.count5 != 0 || values.count6 != 0 ))
  1639. {values.index -= 1;list.stimcats.insertitem(2, 1); values.runcount_1 -= 1; values.runcount_b -= 1; values.count2 += 1; trial.selectnumber}]
  1640. /branch = [if (values.newnumber == 2 && values.count_compareformat > 3 &&
  1641. (values.count1 != 0 || values.count3 != 0 || values.count5 != 0 ))
  1642. {values.index -= 1;list.stimcats.insertitem(2, 1); values.runcount_1 -= 1; values.runcount_b -= 1; values.count2 += 1; trial.selectnumber}]
  1643.  
  1644. /branch = [if (values.newnumber == 3 && values.count_comparecat > 3 &&
  1645. (values.count1 != 0 || values.count2 != 0 || values.count5 != 0 || values.count6 != 0 ))
  1646. {values.index -= 1;list.stimcats.insertitem(3, 1); values.runcount_2 -= 1; values.runcount_a -= 1; values.count3 += 1; trial.selectnumber}]
  1647. /branch = [if (values.newnumber == 3 && values.count_compareformat > 3 &&
  1648. (values.count2 != 0 || values.count4 != 0 || values.count6 != 0 ))
  1649. {values.index -= 1;list.stimcats.insertitem(3, 1); values.runcount_2 -= 1; values.runcount_a -= 1; values.count3 += 1; trial.selectnumber}]
  1650.  
  1651. /branch = [if (values.newnumber == 4 && values.count_comparecat > 3 &&
  1652. (values.count1 != 0 || values.count2 != 0 || values.count5 != 0 || values.count6 != 0 ))
  1653. {values.index -= 1;list.stimcats.insertitem(4, 1); values.runcount_2 -= 1; values.runcount_b -= 1; values.count4 += 1; trial.selectnumber}]
  1654. /branch = [if (values.newnumber == 4 && values.count_compareformat > 3 &&
  1655. (values.count1 != 0 || values.count3 != 0 || values.count5 != 0 ))
  1656. {values.index -= 1;list.stimcats.insertitem(4, 1); values.runcount_2 -= 1; values.runcount_b -= 1; values.count4 += 1; trial.selectnumber}]
  1657.  
  1658. /branch = [if (values.newnumber == 5 && values.count_comparecat > 3 &&
  1659. (values.count3 != 0 || values.count4 != 0 || values.count1 != 0 || values.count2 != 0 ))
  1660. {values.index -= 1;list.stimcats.insertitem(5, 1); values.runcount_3 -= 1; values.runcount_a -= 1; values.count5 += 1; trial.selectnumber}]
  1661. /branch = [if (values.newnumber == 5 && values.count_compareformat > 3 &&
  1662. (values.count2 != 0 || values.count4 != 0 || values.count6 != 0))
  1663. {values.index -= 1;list.stimcats.insertitem(5, 1); values.runcount_3 -= 1; values.runcount_a -= 1; values.count5 += 1; trial.selectnumber}]
  1664.  
  1665. /branch = [if (values.newnumber == 6 && values.count_comparecat > 3 &&
  1666. (values.count3 != 0 || values.count4 != 0 || values.count1 != 0 || values.count2 != 0 ))
  1667. {values.index -= 1;list.stimcats.insertitem(6, 1); values.runcount_3 -= 1; values.runcount_b -= 1; values.count6 += 1; trial.selectnumber}]
  1668. /branch = [if (values.newnumber == 6 && values.count_compareformat > 3 &&
  1669. (values.count1 != 0 || values.count3 != 0 || values.count5 != 0 ))
  1670. {values.index -= 1;list.stimcats.insertitem(6, 1); values.runcount_3 -= 1; values.runcount_b -= 1; values.count6 += 1; trial.selectnumber}]
  1671.  
  1672. /branch = [if (values.count_comparecat > 3 || values.count_compareformat > 3)
  1673. {values.sequence = "";
  1674. values.index = 0;
  1675. values.runcount_1 = 0; values.runcount_2 = 0; values.runcount_3 = 0; values.runcount_4 = 0;
  1676. values.runcount_A = 0; values.runcount_B = 0;
  1677. values.count1 = 14; values.count2 = 14; values.count3 = 14; values.count4 = 14; values.count5 = 14; values.count6 = 14;
  1678. list.stimcats.reset(); trial.selectnumber}]
  1679.  
  1680. /timeout = 0
  1681. /recorddata = false
  1682. </trial>
  1683.  
  1684. *****************************************************************************
  1685. Trial Showsequence: Debug Trial
  1686. *****************************************************************************
  1687. <text completesequence>
  1688. / items = ("<%values.sequence%>")
  1689. </text>
  1690.  
  1691. <trial showsequence>
  1692. / inputdevice = keyboard
  1693. / stimulusframes = [1 = completesequence]
  1694. / validresponse = (57)
  1695. </trial>
  1696.  
  1697. *****************************************************************************
  1698. Block SequenceGenerator:
  1699. *****************************************************************************
  1700. <text wait>
  1701. /items = ("Bitte warten...")
  1702. / fontstyle = ("Arial", 3.00%, false, false, false, false, 5, 0)
  1703. </text>
  1704.  
  1705. <block SequenceGenerator>
  1706. / bgstim = (wait)
  1707. / trials = [1 = selectnumber]
  1708. / recorddata = false
  1709. </block>
  1710.  
  1711. **************************************************************************************************************
  1712. END OF FILE
  1713. **************************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement