<?xml version="1.0" ?> <PsychoPy2experiment encoding="utf-8" version="2021.2.3"> <Settings> <Param name="Audio latency priority" updates="None" val="use prefs" valType="str"/> <Param name="Audio lib" updates="None" val="use prefs" valType="str"/> <Param name="Completed URL" updates="None" val="" valType="str"/> <Param name="Data file delimiter" updates="None" val="auto" valType="str"/> <Param name="Data filename" updates="None" val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code"/> <Param name="Enable Escape" updates="None" val="True" valType="bool"/> <Param name="Experiment info" updates="None" val="{'participant':'', 'session':'001'}" valType="code"/> <Param name="Force stereo" updates="None" val="True" valType="bool"/> <Param name="Full-screen window" updates="None" val="True" valType="bool"/> <Param name="HTML path" updates="None" val="" valType="str"/> <Param name="Incomplete URL" updates="None" val="" valType="str"/> <Param name="Monitor" updates="None" val="testMonitor" valType="str"/> <Param name="Resources" updates="None" val="[]" valType="list"/> <Param name="Save csv file" updates="None" val="False" valType="bool"/> <Param name="Save excel file" updates="None" val="False" valType="bool"/> <Param name="Save hdf5 file" updates="None" val="False" valType="bool"/> <Param name="Save log file" updates="None" val="True" valType="bool"/> <Param name="Save psydat file" updates="None" val="True" valType="bool"/> <Param name="Save wide csv file" updates="None" val="True" valType="bool"/> <Param name="Screen" updates="None" val="1" valType="num"/> <Param name="Show info dlg" updates="None" val="True" valType="bool"/> <Param name="Show mouse" updates="None" val="False" valType="bool"/> <Param name="Units" updates="None" val="height" valType="str"/> <Param name="Use version" updates="None" val="" valType="str"/> <Param name="Window size (pixels)" updates="None" val="(1024, 768)" valType="list"/> <Param name="blendMode" updates="None" val="avg" valType="str"/> <Param name="color" updates="None" val="$[0,0,0]" valType="color"/> <Param name="colorSpace" updates="None" val="rgb" valType="str"/> <Param name="elAddress" updates="None" val="100.1.1.1" valType="str"/> <Param name="elDataFiltering" updates="None" val="FILTER_LEVEL_2" valType="str"/> <Param name="elLiveFiltering" updates="None" val="FILTER_LEVEL_OFF" valType="str"/> <Param name="elModel" updates="None" val="EYELINK 1000 DESKTOP" valType="str"/> <Param name="elPupilAlgorithm" updates="None" val="ELLIPSE_FIT" valType="str"/> <Param name="elPupilMeasure" updates="None" val="PUPIL_AREA" valType="str"/> <Param name="elSampleRate" updates="None" val="1000" valType="num"/> <Param name="elSimMode" updates="None" val="False" valType="bool"/> <Param name="elTrackEyes" updates="None" val="RIGHT_EYE" valType="str"/> <Param name="elTrackingMode" updates="None" val="PUPIL_CR_TRACKING" valType="str"/> <Param name="expName" updates="None" val="navon-figures" valType="str"/> <Param name="exportHTML" updates="None" val="on Sync" valType="str"/> <Param name="eyetracker" updates="None" val="None" valType="str"/> <Param name="gpAddress" updates="None" val="127.0.0.1" valType="str"/> <Param name="gpPort" updates="None" val="4242" valType="num"/> <Param name="logging level" updates="None" val="exp" valType="code"/> <Param name="mgBlink" updates="None" val="MIDDLE_BUTTON" valType="list"/> <Param name="mgMove" updates="None" val="CONTINUOUS" valType="str"/> <Param name="mgSaccade" updates="None" val="0.5" valType="num"/> <Param name="tbLicenseFile" updates="None" val="" valType="str"/> <Param name="tbModel" updates="None" val="" valType="str"/> <Param name="tbSampleRate" updates="None" val="60" valType="num"/> <Param name="tbSerialNo" updates="None" val="" valType="str"/> </Settings> <Routines> <Routine name="trial"> <CodeComponent name="code"> <Param name="Before Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Before JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Begin Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Begin JS Routine" updates="constant" val="thisLetter = letters[trials.thisN];&#10;polygon.setAutoDraw(true);&#10;for (var Idx, _pj_c = 0, _pj_a = util.range((thisLetter.length - 2)), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; elements[Idx].setPos(thisLetter[(Idx + 2)]);&#10; elements[Idx].text = thisLetter[1];&#10; elements[Idx].setAutoDraw(true);&#10;}&#10;" valType="extendedCode"/> <Param name="Begin Routine" updates="constant" val="thisLetter = letters[trials.thisN]&#10;polygon.setAutoDraw(True)&#10;for Idx in range(len(thisLetter)-2):&#10; elements[Idx].setPos(thisLetter[Idx+2])&#10; elements[Idx].text = thisLetter[1]&#10; elements[Idx].setAutoDraw(True)" valType="extendedCode"/> <Param name="Code Type" updates="None" val="Auto->JS" valType="str"/> <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/> <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/> <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="End JS Routine" updates="constant" val="polygon.setAutoDraw(false);&#10;for (var Idx, _pj_c = 0, _pj_a = util.range((thisLetter.length - 2)), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; elements[Idx].setAutoDraw(false);&#10;}&#10;" valType="extendedCode"/> <Param name="End Routine" updates="constant" val="polygon.setAutoDraw(False)&#10;for Idx in range(len(thisLetter)-2):&#10; elements[Idx].setAutoDraw(False)" valType="extendedCode"/> <Param name="disabled" updates="None" val="False" valType="bool"/> <Param name="name" updates="None" val="code" valType="code"/> </CodeComponent> <KeyboardComponent name="key_resp"> <Param name="allowedKeys" updates="constant" val="'n','h','t','l','x','o'" valType="list"/> <Param name="correctAns" updates="constant" val="" valType="str"/> <Param name="disabled" updates="None" val="False" valType="bool"/> <Param name="discard previous" updates="constant" val="True" valType="bool"/> <Param name="durationEstim" updates="None" val="" valType="code"/> <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/> <Param name="name" updates="None" val="key_resp" valType="code"/> <Param name="saveStartStop" updates="None" val="True" valType="bool"/> <Param name="startEstim" updates="None" val="" valType="code"/> <Param name="startType" updates="None" val="time (s)" valType="str"/> <Param name="startVal" updates="None" val="0.0" valType="code"/> <Param name="stopType" updates="None" val="duration (s)" valType="str"/> <Param name="stopVal" updates="constant" val="" valType="code"/> <Param name="store" updates="constant" val="last key" valType="str"/> <Param name="storeCorrect" updates="constant" val="False" valType="bool"/> <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/> </KeyboardComponent> </Routine> <Routine name="setup"> <CodeComponent name="code_colours"> <Param name="Before Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Before JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Begin Experiment" updates="constant" val="white = [1,1,1]" valType="extendedCode"/> <Param name="Begin JS Experiment" updates="constant" val="white = new util.Color([1, 1, 1]);&#10;" valType="extendedCode"/> <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/> <Param name="Begin Routine" updates="constant" val="" valType="extendedCode"/> <Param name="Code Type" updates="None" val="Both" valType="str"/> <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/> <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/> <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/> <Param name="End Routine" updates="constant" val="" valType="extendedCode"/> <Param name="disabled" updates="None" val="False" valType="bool"/> <Param name="name" updates="None" val="code_colours" valType="code"/> </CodeComponent> <CodeComponent name="code_Navon"> <Param name="Before Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Before JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="Begin Experiment" updates="constant" val="localHeight = .02&#10;localWidth = .015&#10;globalHeight = .2&#10;globalWidth = .15&#10;nY = 9&#10;localHeight = globalHeight/nY&#10;&#10;leftBar = []&#10;for Idx in range(nY):&#10; leftBar.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;rightBar = []&#10;for Idx in range(nY):&#10; rightBar.append([globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;midBar = []&#10;for Idx in range(nY):&#10; midBar.append([0,(Idx-nY/2)/nY*globalHeight])&#10;topBar = []&#10;for Idx in range(nY):&#10; topBar.append([(Idx-nY/2)/nY*globalWidth,globalHeight/2])&#10;bottomBar = []&#10;for Idx in range(nY):&#10; bottomBar.append([(Idx-nY/2)/nY*globalWidth,-globalHeight/2])&#10;crossBar = []&#10;for Idx in range(nY):&#10; crossBar.append([(Idx-nY/2)/nY*globalWidth,0])&#10;&#10;letters = []&#10;thisLetter = ['n','N']&#10;for Idx in range(nY):&#10; thisLetter.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;for Idx in range(1,nY-1):&#10; thisLetter.append([-(.5+Idx-nY/2)/(nY-1)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;for Idx in range(nY):&#10; thisLetter.append([globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;letters.append(thisLetter)&#10;thisLetter = ['h','H']&#10;for Idx in range(nY):&#10; thisLetter.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;for Idx in range(1,nY-1):&#10; thisLetter.append([(.5+Idx-nY/2)/(nY-1)*globalWidth,-localHeight/2])&#10;for Idx in range(nY):&#10; thisLetter.append([globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;letters.append(thisLetter)&#10;thisLetter = ['t','T']&#10;for Idx in range(nY):&#10; thisLetter.append([(.5+Idx-nY/2)/(nY-1)*globalWidth,globalHeight/2-localHeight])&#10;for Idx in range(nY-1):&#10; thisLetter.append([0,(Idx-nY/2)/nY*globalHeight])&#10;letters.append(thisLetter)&#10;thisLetter = ['l','L']&#10;for Idx in range(nY):&#10; thisLetter.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&#10;for Idx in range(1,nY):&#10; thisLetter.append([(Idx-nY/2)/nY*globalWidth,-globalHeight/2])&#10;letters.append(thisLetter)&#10;thisLetter = ['x','X']&#10;for Idx in range(0,nY):&#10; thisLetter.append([-(.5+Idx-nY/2)/(nY-1)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;for Idx in range(0,nY):&#10; thisLetter.append([(.5+Idx-nY/2)/(nY-1)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;letters.append(thisLetter)&#10;thisLetter = ['o','O']&#10;for Idx in range(0,nY):&#10; thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;for Idx in range(nY-1):&#10; thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;Idx = .25&#10;thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,-(1+Idx-nY/2)/nY*globalHeight])&#10;thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,-(1+Idx-nY/2)/nY*globalHeight])&#10;#Idx = nY-.25&#10;#thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;#thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&#10;letters.append(thisLetter)&#10;&#10;elements = []&#10;for Idx in range(2,len(letters[0])):&#10; elements.append(visual.TextStim(&#10; win=win, name='element'+str(Idx),&#10; text='N',&#10; font='Arial',&#10; pos=letters[0][Idx], height=localHeight, &#10; wrapWidth=None, ori=0, &#10; color=white))&#10;&#10;nReps = len(letters)&#10;print('nReps',nReps)&#10;" valType="extendedCode"/> <Param name="Begin JS Experiment" updates="constant" val="localHeight = 0.02;&#10;localWidth = 0.015;&#10;globalHeight = 0.2;&#10;globalWidth = 0.15;&#10;nY = 9;&#10;localHeight = (globalHeight / nY);&#10;leftBar = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; leftBar.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;rightBar = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; rightBar.push([(globalWidth / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;midBar = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; midBar.push([0, (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;topBar = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; topBar.push([(((Idx - (nY / 2)) / nY) * globalWidth), (globalHeight / 2)]);&#10;}&#10;bottomBar = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; bottomBar.push([(((Idx - (nY / 2)) / nY) * globalWidth), ((- globalHeight) / 2)]);&#10;}&#10;crossBar = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; crossBar.push([(((Idx - (nY / 2)) / nY) * globalWidth), 0]);&#10;}&#10;letters = [];&#10;thisLetter = ["n", "N"];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(1, (nY - 1)), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([(((- ((0.5 + Idx) - (nY / 2))) / (nY - 1)) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([(globalWidth / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;letters.push(thisLetter);&#10;thisLetter = ["h", "H"];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(1, (nY - 1)), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((((0.5 + Idx) - (nY / 2)) / (nY - 1)) * globalWidth), ((- localHeight) / 2)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([(globalWidth / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;letters.push(thisLetter);&#10;thisLetter = ["t", "T"];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((((0.5 + Idx) - (nY / 2)) / (nY - 1)) * globalWidth), ((globalHeight / 2) - localHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range((nY - 1)), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([0, (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;letters.push(thisLetter);&#10;thisLetter = ["l", "L"];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(1, nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([(((Idx - (nY / 2)) / nY) * globalWidth), ((- globalHeight) / 2)]);&#10;}&#10;letters.push(thisLetter);&#10;thisLetter = ["x", "X"];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(0, nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([(((- ((0.5 + Idx) - (nY / 2))) / (nY - 1)) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(0, nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((((0.5 + Idx) - (nY / 2)) / (nY - 1)) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;letters.push(thisLetter);&#10;thisLetter = ["o", "O"];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(0, nY), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([(Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;for (var Idx, _pj_c = 0, _pj_a = util.range((nY - 1)), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; thisLetter.push([((- Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2)))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;}&#10;Idx = 0.25;&#10;thisLetter.push([(Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;thisLetter.push([((- Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2)))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&#10;thisLetter.push([(Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2))) * globalWidth), (((- ((1 + Idx) - (nY / 2))) / nY) * globalHeight)]);&#10;thisLetter.push([((- Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2)))) * globalWidth), (((- ((1 + Idx) - (nY / 2))) / nY) * globalHeight)]);&#10;letters.push(thisLetter);&#10;elements = [];&#10;for (var Idx, _pj_c = 0, _pj_a = util.range(2, letters[0].length), _pj_b = _pj_a.length; (_pj_c < _pj_b); _pj_c += 1) {&#10; Idx = _pj_a[_pj_c];&#10; elements.push(new visual.TextStim({"win": psychoJS.window, "name": ("element" + Idx.toString()), "text": "N", "font": "Arial", "pos": letters[0][Idx], "height": localHeight, "wrapWidth": null, "ori": 0, "color": white}));&#10;}&#10;nReps = letters.length;&#10;console.log("nReps", nReps);&#10;" valType="extendedCode"/> <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/> <Param name="Begin Routine" updates="constant" val="" valType="extendedCode"/> <Param name="Code Type" updates="None" val="Auto->JS" valType="str"/> <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/> <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/> <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/> <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/> <Param name="End Routine" updates="constant" val="" valType="extendedCode"/> <Param name="disabled" updates="None" val="False" valType="bool"/> <Param name="name" updates="None" val="code_Navon" valType="code"/> </CodeComponent> </Routine> <Routine name="fix"> <PolygonComponent name="polygon"> <Param name="colorSpace" updates="constant" val="rgb" valType="str"/> <Param name="contrast" updates="constant" val="1" valType="num"/> <Param name="disabled" updates="None" val="False" valType="bool"/> <Param name="durationEstim" updates="None" val="" valType="code"/> <Param name="fillColor" updates="constant" val="darkgrey" valType="color"/> <Param name="interpolate" updates="constant" val="linear" valType="str"/> <Param name="lineColor" updates="constant" val="darkgrey" valType="color"/> <Param name="lineWidth" updates="constant" val="1" valType="num"/> <Param name="nVertices" updates="constant" val="4" valType="int"/> <Param name="name" updates="None" val="polygon" valType="code"/> <Param name="opacity" updates="constant" val="" valType="num"/> <Param name="ori" updates="constant" val="0" valType="num"/> <Param name="pos" updates="constant" val="(0, -localHeight/2)" valType="list"/> <Param name="saveStartStop" updates="None" val="True" valType="bool"/> <Param name="shape" updates="None" val="rectangle" valType="str"/> <Param name="size" updates="constant" val="(globalWidth, globalHeight)" valType="list"/> <Param name="startEstim" updates="None" val="" valType="code"/> <Param name="startType" updates="None" val="time (s)" valType="str"/> <Param name="startVal" updates="None" val="0.0" valType="code"/> <Param name="stopType" updates="None" val="duration (s)" valType="str"/> <Param name="stopVal" updates="constant" val=".5" valType="code"/> <Param name="syncScreenRefresh" updates="None" val="True" valType="bool"/> <Param name="units" updates="None" val="from exp settings" valType="str"/> <Param name="vertices" updates="constant" val="" valType="list"/> </PolygonComponent> </Routine> <Routine name="end"> <TextComponent name="text"> <Param name="color" updates="constant" val="white" valType="color"/> <Param name="colorSpace" updates="constant" val="rgb" valType="str"/> <Param name="contrast" updates="constant" val="1" valType="num"/> <Param name="disabled" updates="None" val="False" valType="bool"/> <Param name="durationEstim" updates="None" val="" valType="code"/> <Param name="flip" updates="constant" val="None" valType="str"/> <Param name="font" updates="constant" val="Open Sans" valType="str"/> <Param name="languageStyle" updates="None" val="LTR" valType="str"/> <Param name="letterHeight" updates="constant" val="0.1" valType="num"/> <Param name="name" updates="None" val="text" valType="code"/> <Param name="opacity" updates="constant" val="" valType="num"/> <Param name="ori" updates="constant" val="0" valType="num"/> <Param name="pos" updates="constant" val="(0, 0)" valType="list"/> <Param name="saveStartStop" updates="None" val="True" valType="bool"/> <Param name="startEstim" updates="None" val="" valType="code"/> <Param name="startType" updates="None" val="time (s)" valType="str"/> <Param name="startVal" updates="None" val="0.0" valType="code"/> <Param name="stopType" updates="None" val="duration (s)" valType="str"/> <Param name="stopVal" updates="constant" val="" valType="code"/> <Param name="syncScreenRefresh" updates="None" val="True" valType="bool"/> <Param name="text" updates="constant" val="Fin" valType="str"/> <Param name="units" updates="None" val="from exp settings" valType="str"/> <Param name="wrapWidth" updates="constant" val="" valType="num"/> </TextComponent> </Routine> </Routines> <Flow> <Routine name="setup"/> <LoopInitiator loopType="TrialHandler" name="trials"> <Param name="Selected rows" updates="None" val="" valType="str"/> <Param name="conditions" updates="None" val="None" valType="str"/> <Param name="conditionsFile" updates="None" val="" valType="file"/> <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/> <Param name="isTrials" updates="None" val="True" valType="bool"/> <Param name="loopType" updates="None" val="sequential" valType="str"/> <Param name="nReps" updates="None" val="nReps" valType="num"/> <Param name="name" updates="None" val="trials" valType="code"/> <Param name="random seed" updates="None" val="" valType="code"/> </LoopInitiator> <Routine name="fix"/> <Routine name="trial"/> <LoopTerminator name="trials"/> <Routine name="end"/> </Flow> </PsychoPy2experiment>