﻿<?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 5  » Randomise with randomising conditions</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Tue, 26 May 2026 11:57:28 GMT</lastBuildDate><ttl>20</ttl><item><title>Randomise with randomising conditions</title><link>https://forums.millisecond.com/Topic29167.aspx</link><description>Hi,&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I am wondering if it is possible to randomise the selection from two linked lists when presenting in trials with set conditions on the randomisation. &lt;br/&gt;&lt;br/&gt;For example I am trying to randomise selection from the trial type list and digit sequence list each time it is run. However, there must be an 80/20 ratio of trial types presented and no two same digits can be presented in a row. I have tried the below code, however I am unsure if the reset function is correct or in the right place, secondly the creation of a new digit list is not that effective. How could this be resolved?&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Any suggestions on how to improve this would be greatly appreciated. &lt;br/&gt;&lt;br/&gt;Thank you.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Note: list of practice trialtypes&lt;br/&gt;&amp;lt;list practice_trialtype&amp;gt;&lt;br/&gt;/items = (trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo, trial.practice_nogo)&lt;br/&gt;/replace = true&lt;br/&gt;/poolsize = 24&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;Note: list of digits used for practice&lt;br/&gt;&amp;lt;list practice_digitsequence&amp;gt;&lt;br/&gt;/items = (1,2,3,4,5,6,7,8,9)&lt;br/&gt;/poolsize = 24&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial practice_go&amp;gt;&lt;br/&gt;/pretrialpause = values.iti&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.trialtype =  "Go";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitLastChosen = list.practice_digitsequence.currentvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit_new = list.practice_digitsequence.removeitem(values.digitLastChosen);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit_new = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.practice_digitsequence.resetselection(values.digit);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.fontsize = list.practice_fontsizes.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.insertstimulustime(text.mask, values.digitpresentationtime);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.insertstimulustime(shape.background, (values.digitpresentationtime + values.maskpresentationtime));&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.resetstimulusframes();&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = background, digit]&lt;br/&gt;/responsetime = 0&lt;br/&gt;/responseinterrupt = frames&lt;br/&gt;/monkeyresponse = (57)&lt;br/&gt;/iscorrectresponse = [trial.practice_go.response == 0]&lt;br/&gt;/trialduration = values.digitpresentationtime + values.maskpresentationtime&lt;br/&gt;&lt;br/&gt;/ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.practice_go.response == 0) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = trial.practice_go.latency &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = ""; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT == "") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Omission"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Anticipatory"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Ambiguous";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Success"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/recorddata = true&lt;br/&gt;/branch = [if (trial.practice_go.error) trial.feedbackerror]&lt;br/&gt;/branch = [if (trial.practice_go.correct) trial.feedbackcorrect]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial practice_nogo&amp;gt;&lt;br/&gt;/pretrialpause = values.iti&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.trialtype = "NoGo";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitLastChosen = list.practice_digitsequence.currentvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo_new = list.practice_digitsequence.removeitem(values.digitLastChosen)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo_new = list.practice_digitsequence.nextvalue; &amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.practice_digitsequence.resetselection(values.digitnogo);&lt;br/&gt;&amp;nbsp; values.fontsize = list.practice_fontsizes.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mod(values.digitnogo, 2) == 0) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.even = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.correctresponsekey = values.responsekey2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.even = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.correctresponsekey = values.responsekey1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.insertstimulustime(text.mask, values.digitpresentationtime);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.insertstimulustime(shape.background, (values.digitpresentationtime + values.maskpresentationtime));&lt;br/&gt;]&lt;br/&gt;/ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.resetstimulusframes();&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/stimulustimes = [0 = background, digitnogo]&lt;br/&gt;/responsetime = 0&lt;br/&gt;/responseinterrupt = frames&lt;br/&gt;/monkeyresponse = (57,0)&lt;br/&gt;/iscorrectresponse = [trial.practice_nogo.response == values.correctresponsekey]&lt;br/&gt;/trialduration = values.digitpresentationtime + values.maskpresentationtime&lt;br/&gt;&lt;br/&gt;/ontrialend = [&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.practice_nogo.response == values.correctresponsekey) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = trial.practice_nogo.latency &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = ""; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT == "") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "NoGo Success"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "NoGo Failure";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/recorddata = true&lt;br/&gt;/branch = [if (trial.practice_nogo.error) trial.feedbackerror]&lt;br/&gt;/branch = [if (trial.practice_nogo.correct) trial.feedbackcorrect]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;</description><pubDate>Wed, 03 Jun 2020 11:14:28 GMT</pubDate><dc:creator>aliciay1</dc:creator></item><item><title>RE: Randomise with randomising conditions</title><link>https://forums.millisecond.com/Topic29173.aspx</link><description>&lt;blockquote data-id="29172" class="if-quote-wrapper" unselectable="on" data-guid="1591182781906" id="if_insertedNode_1591182780871" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="29172" 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="29172" 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="29172" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;aliciay1 - 6/3/2020&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-29172"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="29171" class="if-quote-wrapper" unselectable="on" data-guid="1591182781906" id="if_insertedNode_1591145346850" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="29171" 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="29171" 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="29171" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/3/2020&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-29171"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;If color is the sole distinguisher, then /maxrunsize=1 in the digit &amp;lt;list&amp;gt; should do the trick.&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="29171"&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;OK great, thanks very much! That is very helpful.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I have a secondary issue, as one form of the task is a 1-back task, to correctly score resposnses it is required that the randomly selected digit sequence is saved to determine whether the response correct. Is there a way to track and save the selection of digits using maxrunsize, or do you have any suggestions on how I could correctly score performance?&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I currently have a separate digit list with the correct sequence of answers to the 1-back digit sequence which is fixed but I am unsure how to apply this when digit sequence is randomised.&amp;nbsp;&lt;a class="if-quote-goto quote-link" href="#" data-id="29172"&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;There are n-back scripts available in the library, so you may want to take a look at those:&lt;br/&gt;&lt;a href="https://www.millisecond.com/download/library/nback/"&gt;https://www.millisecond.com/download/library/nback/&lt;/a&gt;</description><pubDate>Wed, 03 Jun 2020 11:14:28 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Randomise with randomising conditions</title><link>https://forums.millisecond.com/Topic29172.aspx</link><description>&lt;blockquote data-id="29171" class="if-quote-wrapper" unselectable="on" data-guid="1591145347856" contenteditable="false" id="if_insertedNode_1591145346850"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="29171" 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="29171" 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="29171" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/3/2020&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-29171"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;If color is the sole distinguisher, then /maxrunsize=1 in the digit &amp;lt;list&amp;gt; should do the trick.&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="29171"&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;OK great, thanks very much! That is very helpful.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I have a secondary issue, as one form of the task is a 1-back task, to correctly score resposnses it is required that the randomly selected digit sequence is saved to determine whether the response correct. Is there a way to track and save the selection of digits using maxrunsize, or do you have any suggestions on how I could correctly score performance?&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I currently have a separate digit list with the correct sequence of answers to the 1-back digit sequence which is fixed but I am unsure how to apply this when digit sequence is randomised.&amp;nbsp;</description><pubDate>Wed, 03 Jun 2020 01:18:49 GMT</pubDate><dc:creator>aliciay1</dc:creator></item><item><title>RE: Randomise with randomising conditions</title><link>https://forums.millisecond.com/Topic29171.aspx</link><description>If color is the sole distinguisher, then /maxrunsize=1 in the digit &amp;lt;list&amp;gt; should do the trick.&lt;br/&gt;</description><pubDate>Wed, 03 Jun 2020 00:47:02 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: Randomise with randomising conditions</title><link>https://forums.millisecond.com/Topic29170.aspx</link><description>&lt;blockquote data-id="29169" class="if-quote-wrapper" unselectable="on" data-guid="1591144860901" contenteditable="false" id="if_insertedNode_1591144860081"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="29169" 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="29169" 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="29169" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;Dave - 6/3/2020&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-29169"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;&lt;blockquote data-id="29167" class="if-quote-wrapper" unselectable="on" data-guid="1591144860901" id="if_insertedNode_1591144560334" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="29167" 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="29167" 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="29167" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;aliciay1 - 6/3/2020&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-29167"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi,&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I am wondering if it is possible to randomise the selection from two linked lists when presenting in trials with set conditions on the randomisation. &lt;br/&gt;&lt;br/&gt;For example I am trying to randomise selection from the trial type list and digit sequence list each time it is run. However, there must be an 80/20 ratio of trial types presented and no two same digits can be presented in a row. I have tried the below code, however I am unsure if the reset function is correct or in the right place, secondly the creation of a new digit list is not that effective. How could this be resolved?&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Any suggestions on how to improve this would be greatly appreciated. &lt;br/&gt;&lt;br/&gt;Thank you.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Note: list of practice trialtypes&lt;br/&gt;&amp;lt;list practice_trialtype&amp;gt;&lt;br/&gt;/items = (trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo, trial.practice_nogo)&lt;br/&gt;/replace = true&lt;br/&gt;/poolsize = 24&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;Note: list of digits used for practice&lt;br/&gt;&amp;lt;list practice_digitsequence&amp;gt;&lt;br/&gt;/items = (1,2,3,4,5,6,7,8,9)&lt;br/&gt;/poolsize = 24&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial practice_go&amp;gt;&lt;br/&gt;/pretrialpause = values.iti&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.trialtype =  "Go";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitLastChosen = list.practice_digitsequence.currentvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit_new = list.practice_digitsequence.removeitem(values.digitLastChosen);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit_new = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.practice_digitsequence.resetselection(values.digit);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.fontsize = list.practice_fontsizes.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.insertstimulustime(text.mask, values.digitpresentationtime);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.insertstimulustime(shape.background, (values.digitpresentationtime + values.maskpresentationtime));&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.resetstimulusframes();&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = background, digit]&lt;br/&gt;/responsetime = 0&lt;br/&gt;/responseinterrupt = frames&lt;br/&gt;/monkeyresponse = (57)&lt;br/&gt;/iscorrectresponse = [trial.practice_go.response == 0]&lt;br/&gt;/trialduration = values.digitpresentationtime + values.maskpresentationtime&lt;br/&gt;&lt;br/&gt;/ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.practice_go.response == 0) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = trial.practice_go.latency &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = ""; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT == "") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Omission"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Anticipatory"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Ambiguous";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Success"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/recorddata = true&lt;br/&gt;/branch = [if (trial.practice_go.error) trial.feedbackerror]&lt;br/&gt;/branch = [if (trial.practice_go.correct) trial.feedbackcorrect]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial practice_nogo&amp;gt;&lt;br/&gt;/pretrialpause = values.iti&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.trialtype = "NoGo";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitLastChosen = list.practice_digitsequence.currentvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo_new = list.practice_digitsequence.removeitem(values.digitLastChosen)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo_new = list.practice_digitsequence.nextvalue; &amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.practice_digitsequence.resetselection(values.digitnogo);&lt;br/&gt;&amp;nbsp; values.fontsize = list.practice_fontsizes.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mod(values.digitnogo, 2) == 0) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.even = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.correctresponsekey = values.responsekey2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.even = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.correctresponsekey = values.responsekey1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.insertstimulustime(text.mask, values.digitpresentationtime);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.insertstimulustime(shape.background, (values.digitpresentationtime + values.maskpresentationtime));&lt;br/&gt;]&lt;br/&gt;/ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.resetstimulusframes();&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/stimulustimes = [0 = background, digitnogo]&lt;br/&gt;/responsetime = 0&lt;br/&gt;/responseinterrupt = frames&lt;br/&gt;/monkeyresponse = (57,0)&lt;br/&gt;/iscorrectresponse = [trial.practice_nogo.response == values.correctresponsekey]&lt;br/&gt;/trialduration = values.digitpresentationtime + values.maskpresentationtime&lt;br/&gt;&lt;br/&gt;/ontrialend = [&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.practice_nogo.response == values.correctresponsekey) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = trial.practice_nogo.latency &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = ""; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT == "") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "NoGo Success"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "NoGo Failure";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/recorddata = true&lt;br/&gt;/branch = [if (trial.practice_nogo.error) trial.feedbackerror]&lt;br/&gt;/branch = [if (trial.practice_nogo.correct) trial.feedbackcorrect]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="29167"&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;It's entirely unclear what the "go" and what the "no go" stimuli are here. That said, if all you care about is having no two identical digits in a row, /maxrunsize is your friend:&lt;br/&gt;&lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/v5/html/language/attributes/maxrunsize.htm"&gt;&lt;a href="https://www.millisecond.com/support/docs/v5/html/language/attributes/maxrunsize.htm"&gt;https://www.millisecond.com/support/docs/v5/html/language/attributes/maxrunsize.htm&lt;/a&gt;&lt;/a&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="29169"&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;Thank you very much.&amp;nbsp;&lt;br/&gt;The go and nogo are presentation of digits in different colours and required different responses as outlined in the trial code.&amp;nbsp;&lt;br/&gt;&amp;lt;text digitnogo&amp;gt;&lt;br/&gt;/items = ("&amp;lt;%values.digitnogo%&amp;gt;") &lt;br/&gt;/ fontstyle = ("Symbol", values.fontsize, false, false, false, false, 5, 1)&lt;br/&gt;/ txcolor = (white)&lt;br/&gt;/txbgcolor = (black)&lt;br/&gt;/position = (50%, 50%)&lt;br/&gt;/erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text digit&amp;gt;&lt;br/&gt;/items = ("&amp;lt;%values.digit%&amp;gt;")&lt;br/&gt;/ fontstyle = ("Symbol", values.fontsize, false, false, false, false, 5, 1)&lt;br/&gt;/ txcolor = (red)&lt;br/&gt;/txbgcolor = (black)&lt;br/&gt;/position = (50%, 50%)&lt;br/&gt;/erase = false&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;</description><pubDate>Wed, 03 Jun 2020 00:42:54 GMT</pubDate><dc:creator>aliciay1</dc:creator></item><item><title>RE: Randomise with randomising conditions</title><link>https://forums.millisecond.com/Topic29169.aspx</link><description>&lt;blockquote data-id="29167" class="if-quote-wrapper" unselectable="on" data-guid="1591144561116" id="if_insertedNode_1591144560334" contenteditable="false"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="29167" 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="29167" 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="29167" title=" "&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;aliciay1 - 6/3/2020&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-29167"&gt;&lt;div class="if-quote-message-margin" contenteditable="true"&gt;Hi,&amp;nbsp;&lt;br/&gt;&lt;br/&gt;I am wondering if it is possible to randomise the selection from two linked lists when presenting in trials with set conditions on the randomisation. &lt;br/&gt;&lt;br/&gt;For example I am trying to randomise selection from the trial type list and digit sequence list each time it is run. However, there must be an 80/20 ratio of trial types presented and no two same digits can be presented in a row. I have tried the below code, however I am unsure if the reset function is correct or in the right place, secondly the creation of a new digit list is not that effective. How could this be resolved?&amp;nbsp;&lt;br/&gt;&lt;br/&gt;Any suggestions on how to improve this would be greatly appreciated. &lt;br/&gt;&lt;br/&gt;Thank you.&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Note: list of practice trialtypes&lt;br/&gt;&amp;lt;list practice_trialtype&amp;gt;&lt;br/&gt;/items = (trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, trial.practice_go, &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo, trial.practice_nogo)&lt;br/&gt;/replace = true&lt;br/&gt;/poolsize = 24&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;Note: list of digits used for practice&lt;br/&gt;&amp;lt;list practice_digitsequence&amp;gt;&lt;br/&gt;/items = (1,2,3,4,5,6,7,8,9)&lt;br/&gt;/poolsize = 24&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial practice_go&amp;gt;&lt;br/&gt;/pretrialpause = values.iti&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.trialtype =  "Go";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitLastChosen = list.practice_digitsequence.currentvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit_new = list.practice_digitsequence.removeitem(values.digitLastChosen);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digit_new = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.practice_digitsequence.resetselection(values.digit);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.fontsize = list.practice_fontsizes.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.insertstimulustime(text.mask, values.digitpresentationtime);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.insertstimulustime(shape.background, (values.digitpresentationtime + values.maskpresentationtime));&lt;br/&gt;]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_go.resetstimulusframes();&lt;br/&gt;]&lt;br/&gt;/stimulustimes = [0 = background, digit]&lt;br/&gt;/responsetime = 0&lt;br/&gt;/responseinterrupt = frames&lt;br/&gt;/monkeyresponse = (57)&lt;br/&gt;/iscorrectresponse = [trial.practice_go.response == 0]&lt;br/&gt;/trialduration = values.digitpresentationtime + values.maskpresentationtime&lt;br/&gt;&lt;br/&gt;/ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.practice_go.response == 0) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = trial.practice_go.latency &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = ""; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT == "") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Omission"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Anticipatory"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Ambiguous";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "Go Success"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;/recorddata = true&lt;br/&gt;/branch = [if (trial.practice_go.error) trial.feedbackerror]&lt;br/&gt;/branch = [if (trial.practice_go.correct) trial.feedbackcorrect]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial practice_nogo&amp;gt;&lt;br/&gt;/pretrialpause = values.iti&lt;br/&gt;/ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.trialtype = "NoGo";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo = list.practice_digitsequence.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitLastChosen = list.practice_digitsequence.currentvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo_new = list.practice_digitsequence.removeitem(values.digitLastChosen)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.digitnogo_new = list.practice_digitsequence.nextvalue; &amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.practice_digitsequence.resetselection(values.digitnogo);&lt;br/&gt;&amp;nbsp; values.fontsize = list.practice_fontsizes.nextvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mod(values.digitnogo, 2) == 0) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.even = true;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.correctresponsekey = values.responsekey2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.even = false;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.correctresponsekey = values.responsekey1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.insertstimulustime(text.mask, values.digitpresentationtime);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.insertstimulustime(shape.background, (values.digitpresentationtime + values.maskpresentationtime));&lt;br/&gt;]&lt;br/&gt;/ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trial.practice_nogo.resetstimulusframes();&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/stimulustimes = [0 = background, digitnogo]&lt;br/&gt;/responsetime = 0&lt;br/&gt;/responseinterrupt = frames&lt;br/&gt;/monkeyresponse = (57,0)&lt;br/&gt;/iscorrectresponse = [trial.practice_nogo.response == values.correctresponsekey]&lt;br/&gt;/trialduration = values.digitpresentationtime + values.maskpresentationtime&lt;br/&gt;&lt;br/&gt;/ontrialend = [&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (trial.practice_nogo.response == values.correctresponsekey) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = trial.practice_nogo.latency &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.RT = ""; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 0;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;lt; values.anticipatoryresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 1;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.anticipatoryresponsetime &amp;amp;&amp;amp; values.RT &amp;lt; values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 2;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT != "" &amp;amp;&amp;amp; values.RT &amp;gt;= values.validresponsetime) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.latencytype = 3;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (values.RT == "") {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "NoGo Success"; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values.responsetype = "NoGo Failure";&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br/&gt;]&lt;br/&gt;&lt;br/&gt;/recorddata = true&lt;br/&gt;/branch = [if (trial.practice_nogo.error) trial.feedbackerror]&lt;br/&gt;/branch = [if (trial.practice_nogo.correct) trial.feedbackcorrect]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;a class="if-quote-goto quote-link" href="#" data-id="29167"&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;It's entirely unclear what the "go" and what the "no go" stimuli are here. That said, if all you care about is having no two identical digits in a row, /maxrunsize is your friend:&lt;br/&gt;&lt;br/&gt;&lt;a href="https://www.millisecond.com/support/docs/v5/html/language/attributes/maxrunsize.htm"&gt;https://www.millisecond.com/support/docs/v5/html/language/attributes/maxrunsize.htm&lt;/a&gt;</description><pubDate>Wed, 03 Jun 2020 00:37:43 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>