﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 6  » Equal number of trial types and sub-types</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Sun, 28 Jun 2026 13:29:58 GMT</lastBuildDate><ttl>20</ttl><item><title>Equal number of trial types and sub-types</title><link>https://forums.millisecond.com/Topic35860.aspx</link><description>Hello, Happy New Year 2024.&lt;br/&gt;&lt;br/&gt;I have two trials "plus" and "minus" where each trial consists of two different attributes (say trialtype): "same" and "distinct" and each attribute has two different sub-attributes (such as odd/even, low/high). I would like to have equal number of each attribute and it's sub-attributes. That is, in a block of 64 trials (as in the script below), I want to have 32 plus trials (with 16 "same": 8 even/8 odd) and 32 minus trials (with 16 "same": 8 low/8 high). How can I achieve this?&lt;br/&gt;&lt;br/&gt;Thanks to Mr. Dave for his kind help earlier in this scripts.&lt;br/&gt;&lt;br/&gt;Output of the script is in the attached excel file (where I have highlighted the issues).&lt;br/&gt;&lt;br/&gt;Would appreciate your help - Thank you.&lt;br/&gt;&lt;br/&gt;Here is the script:&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ lftimg = ""&lt;br/&gt;/ rgtimg = ""&lt;br/&gt;/ lftitemnumber = 0&lt;br/&gt;/ rgtitemnumber = 0&lt;br/&gt;&lt;br/&gt;/ aitem = 0&lt;br/&gt;/ bitem = 0&lt;br/&gt;/ citem = 0&lt;br/&gt;/ ditem = 0&lt;br/&gt;/ eitem = 0&lt;br/&gt;/ fitem = 0&lt;br/&gt;/ gitem = 0&lt;br/&gt;/ hitem = 0&lt;br/&gt;&lt;br/&gt;/ trialtype = ""&lt;br/&gt;/ rightlist = 1&lt;br/&gt;&lt;br/&gt;/ lfttype = ""&lt;br/&gt;/ rgttype = ""&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text A&amp;gt;&lt;br/&gt;/items = ("A1.jpg","A2.jpg","A3.jpg","A4.jpg","A5.jpg","A6.jpg","A7.jpg","A8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.aitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text B&amp;gt;&lt;br/&gt;/items = ("B1.jpg","B2.jpg","B3.jpg","B4.jpg","B5.jpg","B6.jpg","B7.jpg","B8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.bitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text C&amp;gt;&lt;br/&gt;/items = ("C1.jpg","C2.jpg","C3.jpg","C4.jpg","C5.jpg","C6.jpg","C7.jpg","C8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.citem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text D&amp;gt;&lt;br/&gt;/items = ("D1.jpg","D2.jpg","D3.jpg","D4.jpg","D5.jpg","D6.jpg","D7.jpg","D8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.ditem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text E&amp;gt;&lt;br/&gt;/items = ("E1.jpg","E2.jpg","E3.jpg","E4.jpg","E5.jpg","E6.jpg","E7.jpg","E8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.aitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text F&amp;gt;&lt;br/&gt;/items = ("F1.jpg","F2.jpg","F3.jpg","F4.jpg","F5.jpg","F6.jpg","F7.jpg","F8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.bitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text G&amp;gt;&lt;br/&gt;/items = ("G1.jpg","G2.jpg","G3.jpg","G4.jpg","G5.jpg","G6.jpg","G7.jpg","G8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.citem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text H&amp;gt;&lt;br/&gt;/items = ("H1.jpg","H2.jpg","H3.jpg","H4.jpg","H5.jpg","H6.jpg","H7.jpg","H8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.ditem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text plus&amp;gt;&lt;br/&gt;/ items = ("Positive")&lt;br/&gt;/ size = (20%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ fontstyle = ("Arial", 30pt, true)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text minus&amp;gt;&lt;br/&gt;/ items = ("Minus")&lt;br/&gt;/ size = (20%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ fontstyle = ("Arial", 30pt, true)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list image&amp;gt;&lt;br/&gt;/ items = (text.A, text.B, text.C, text.D, text.E, text.F, text.G, text.H)&lt;br/&gt;/ selectionmode = random&lt;br/&gt;/ replace = false&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list itemnumbers&amp;gt;&lt;br/&gt;/ poolsize = 8&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list odditemnumbers&amp;gt;&lt;br/&gt;/ items = (1,3,5,7)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list evenitemnumbers&amp;gt;&lt;br/&gt;/ items = (2,4,6,8)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list rightevenodditemnumber&amp;gt;&lt;br/&gt;/ items = (list.odditemnumbers.nextvalue, list.evenitemnumbers.nextvalue)&lt;br/&gt;/ selectionmode = values.rightlist&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list lowitemnumbers&amp;gt;&lt;br/&gt;/ items = (1,2,3,4)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list highitemnumbers&amp;gt;&lt;br/&gt;/ items = (5,6,7,8)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list righthighlowitemnumber&amp;gt;&lt;br/&gt;/ items = (list.lowitemnumbers.nextvalue, list.highitemnumbers.nextvalue)&lt;br/&gt;/ selectionmode = values.rightlist&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list trialytype&amp;gt;&lt;br/&gt;/ items = ("same", "same", "distinct", "distinct")&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial plus&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp; values.trialtype = list.trialytype.nextvalue; // determine trial type&lt;br/&gt;&amp;nbsp; trial.plus.resetstimulusframes();&lt;br/&gt;&amp;nbsp; list.image.reset();&lt;br/&gt;&amp;nbsp; trial.plus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.lftimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on left side&lt;br/&gt;&amp;nbsp; trial.plus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.rgtimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on right side&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (values.lftimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.bitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.eitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.gitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.hitem;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (mod(values.lftitemnumber, 2) == 1) { // left item is odd&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "odd";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "odd";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "even";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; } else if (mod(values.lftitemnumber, 2) == 0) { // left item is even&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "even";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "even";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "odd";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.rgtimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.bitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.eitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.gitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.hitem;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearScreen, text.plus]&lt;br/&gt;/ validresponse = ("s", "d")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial minus&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp; values.trialtype = list.trialytype.nextvalue; // determine trial type&lt;br/&gt;&amp;nbsp; trial.minus.resetstimulusframes();&lt;br/&gt;&amp;nbsp; list.image.reset();&lt;br/&gt;&amp;nbsp; trial.minus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.lftimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on left side&lt;br/&gt;&amp;nbsp; trial.minus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.rgtimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on right side&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (values.lftimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.bitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.eitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.gitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.hitem;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (values.lftitemnumber &amp;lt; 5) { // left item is odd&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "low";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "low";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "high";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; } else if (values.lftitemnumber &amp;gt;= 5) { // left item is even&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "high";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "high";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "low";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.rgtimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.bitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.eitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.gitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.hitem;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearScreen, text.minus]&lt;br/&gt;/ validresponse = ("s", "d")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block tryblock&amp;gt;&lt;br/&gt;/ trials = [1-64 = noreplace(trial.PLUS, trial.minus)]&lt;br/&gt;/ recorddata = true&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode response latency correct&lt;br/&gt;&amp;nbsp; values.lftimg values.rgtimg values.lftitemnumber values.rgtitemnumber values.trialtype values.lfttype values.rgttype)&lt;br/&gt;&amp;lt;/data&amp;gt;</description><pubDate>Wed, 03 Jan 2024 12:34:12 GMT</pubDate><dc:creator>wuaham</dc:creator></item><item><title>RE: Equal number of trial types and sub-types</title><link>https://forums.millisecond.com/Topic35861.aspx</link><description>&lt;blockquote data-id="35860" class="if-quote-wrapper" unselectable="on" data-guid="1704284982100" contenteditable="false" id="if_insertedNode_1704284981310"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="35860" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="35860" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="35860" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;wuaham - 1/3/2024&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-35860"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hello, Happy New Year 2024.&lt;br/&gt;&lt;br/&gt;I have two trials "plus" and "minus" where each trial consists of two different attributes (say trialtype): "same" and "distinct" and each attribute has two different sub-attributes (such as odd/even, low/high). I would like to have equal number of each attribute and it's sub-attributes. That is, in a block of 64 trials (as in the script below), I want to have 32 plus trials (with 16 "same": 8 even/8 odd) and 32 minus trials (with 16 "same": 8 low/8 high). How can I achieve this?&lt;br/&gt;&lt;br/&gt;Thanks to Mr. Dave for his kind help earlier in this scripts.&lt;br/&gt;&lt;br/&gt;Output of the script is in the attached excel file (where I have highlighted the issues).&lt;br/&gt;&lt;br/&gt;Would appreciate your help - Thank you.&lt;br/&gt;&lt;br/&gt;Here is the script:&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ lftimg = ""&lt;br/&gt;/ rgtimg = ""&lt;br/&gt;/ lftitemnumber = 0&lt;br/&gt;/ rgtitemnumber = 0&lt;br/&gt;&lt;br/&gt;/ aitem = 0&lt;br/&gt;/ bitem = 0&lt;br/&gt;/ citem = 0&lt;br/&gt;/ ditem = 0&lt;br/&gt;/ eitem = 0&lt;br/&gt;/ fitem = 0&lt;br/&gt;/ gitem = 0&lt;br/&gt;/ hitem = 0&lt;br/&gt;&lt;br/&gt;/ trialtype = ""&lt;br/&gt;/ rightlist = 1&lt;br/&gt;&lt;br/&gt;/ lfttype = ""&lt;br/&gt;/ rgttype = ""&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text A&amp;gt;&lt;br/&gt;/items = ("A1.jpg","A2.jpg","A3.jpg","A4.jpg","A5.jpg","A6.jpg","A7.jpg","A8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.aitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text B&amp;gt;&lt;br/&gt;/items = ("B1.jpg","B2.jpg","B3.jpg","B4.jpg","B5.jpg","B6.jpg","B7.jpg","B8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.bitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text C&amp;gt;&lt;br/&gt;/items = ("C1.jpg","C2.jpg","C3.jpg","C4.jpg","C5.jpg","C6.jpg","C7.jpg","C8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.citem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text D&amp;gt;&lt;br/&gt;/items = ("D1.jpg","D2.jpg","D3.jpg","D4.jpg","D5.jpg","D6.jpg","D7.jpg","D8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.ditem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text E&amp;gt;&lt;br/&gt;/items = ("E1.jpg","E2.jpg","E3.jpg","E4.jpg","E5.jpg","E6.jpg","E7.jpg","E8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.aitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text F&amp;gt;&lt;br/&gt;/items = ("F1.jpg","F2.jpg","F3.jpg","F4.jpg","F5.jpg","F6.jpg","F7.jpg","F8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.bitem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text G&amp;gt;&lt;br/&gt;/items = ("G1.jpg","G2.jpg","G3.jpg","G4.jpg","G5.jpg","G6.jpg","G7.jpg","G8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.citem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text H&amp;gt;&lt;br/&gt;/items = ("H1.jpg","H2.jpg","H3.jpg","H4.jpg","H5.jpg","H6.jpg","H7.jpg","H8.jpg")&lt;br/&gt;/size = (20%,20%)&lt;br/&gt;/fontstyle = ("Arial", 50pt, true)&lt;br/&gt;/ vposition = 50%&lt;br/&gt;/ hposition = 0%&lt;br/&gt;/ select = values.ditem&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text plus&amp;gt;&lt;br/&gt;/ items = ("Positive")&lt;br/&gt;/ size = (20%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ fontstyle = ("Arial", 30pt, true)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text minus&amp;gt;&lt;br/&gt;/ items = ("Minus")&lt;br/&gt;/ size = (20%, 20%)&lt;br/&gt;/ position = (50%, 50%)&lt;br/&gt;/ fontstyle = ("Arial", 30pt, true)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list image&amp;gt;&lt;br/&gt;/ items = (text.A, text.B, text.C, text.D, text.E, text.F, text.G, text.H)&lt;br/&gt;/ selectionmode = random&lt;br/&gt;/ replace = false&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list itemnumbers&amp;gt;&lt;br/&gt;/ poolsize = 8&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list odditemnumbers&amp;gt;&lt;br/&gt;/ items = (1,3,5,7)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list evenitemnumbers&amp;gt;&lt;br/&gt;/ items = (2,4,6,8)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list rightevenodditemnumber&amp;gt;&lt;br/&gt;/ items = (list.odditemnumbers.nextvalue, list.evenitemnumbers.nextvalue)&lt;br/&gt;/ selectionmode = values.rightlist&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list lowitemnumbers&amp;gt;&lt;br/&gt;/ items = (1,2,3,4)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list highitemnumbers&amp;gt;&lt;br/&gt;/ items = (5,6,7,8)&lt;br/&gt;/ not = (values.lftitemnumber)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;/ replace = true&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list righthighlowitemnumber&amp;gt;&lt;br/&gt;/ items = (list.lowitemnumbers.nextvalue, list.highitemnumbers.nextvalue)&lt;br/&gt;/ selectionmode = values.rightlist&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list trialytype&amp;gt;&lt;br/&gt;/ items = ("same", "same", "distinct", "distinct")&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial plus&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp; values.trialtype = list.trialytype.nextvalue; // determine trial type&lt;br/&gt;&amp;nbsp; trial.plus.resetstimulusframes();&lt;br/&gt;&amp;nbsp; list.image.reset();&lt;br/&gt;&amp;nbsp; trial.plus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.lftimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on left side&lt;br/&gt;&amp;nbsp; trial.plus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.rgtimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on right side&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (values.lftimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.bitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.eitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.gitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.hitem;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (mod(values.lftitemnumber, 2) == 1) { // left item is odd&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "odd";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "odd";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "even";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; } else if (mod(values.lftitemnumber, 2) == 0) { // left item is even&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "even";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "even";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "odd";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.rgtimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.bitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.eitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.gitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.rightevenodditemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.hitem;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearScreen, text.plus]&lt;br/&gt;/ validresponse = ("s", "d")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial minus&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp; values.trialtype = list.trialytype.nextvalue; // determine trial type&lt;br/&gt;&amp;nbsp; trial.minus.resetstimulusframes();&lt;br/&gt;&amp;nbsp; list.image.reset();&lt;br/&gt;&amp;nbsp; trial.minus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.lftimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on left side&lt;br/&gt;&amp;nbsp; trial.minus.insertstimulusframe(list.image.nextvalue, 1);&lt;br/&gt;&amp;nbsp; values.rgtimg = list.image.currentvalue; // image type -- A, B, C, or D -- displayed on right side&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (values.lftimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.bitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.eitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.gitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.lftimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 30%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.itemnumbers.nextindex;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lftitemnumber = values.hitem;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp; &lt;br/&gt;&amp;nbsp; if (values.lftitemnumber &amp;lt; 5) { // left item is odd&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "low";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "low";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "high";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; } else if (values.lftitemnumber &amp;gt;= 5) { // left item is even&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.lfttype = "high";&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.trialtype == "same") { // if trial type is same&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "high";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 2; // we use even item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  } else { // otherwise&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rgttype = "low";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.rightlist = 1; // we use odd item numbers for the right image&lt;br/&gt;&amp;nbsp;&amp;nbsp;  }&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;&amp;nbsp;&amp;nbsp;  if (values.rgtimg == text.A) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.A.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.aitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.aitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.B) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.B.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.bitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.bitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.C) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.C.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.citem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.citem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.D) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.D.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.ditem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.ditem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.E) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.E.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.eitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.eitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.F) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.F.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.fitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.fitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.G) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.G.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.gitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.gitem;&lt;br/&gt;&amp;nbsp; } else if (values.rgtimg == text.H) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;  text.H.hposition = 70%;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.hitem = list.righthighlowitemnumber.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;  values.rgtitemnumber = values.hitem;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp; };&lt;br/&gt;]&lt;br/&gt;/ stimulusframes = [1=clearScreen, text.minus]&lt;br/&gt;/ validresponse = ("s", "d")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block tryblock&amp;gt;&lt;br/&gt;/ trials = [1-64 = noreplace(trial.PLUS, trial.minus)]&lt;br/&gt;/ recorddata = true&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date time subject group session blocknum blockcode trialnum trialcode response latency correct&lt;br/&gt;&amp;nbsp; values.lftimg values.rgtimg values.lftitemnumber values.rgtitemnumber values.trialtype values.lfttype values.rgttype)&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="35860"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;Then set up your lists that determine trial type accordingly. I'm pretty sure all of this has been covered in the previous examples already.&lt;br/&gt;&lt;br/&gt;Refer to the 2nd example in the 6th post at &lt;a href="https://forums.millisecond.com/Topic35820.aspx"&gt;https://forums.millisecond.com/Topic35820.aspx&lt;/a&gt;&lt;br/&gt;</description><pubDate>Wed, 03 Jan 2024 12:34:12 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>