<?xml version="1.0" ?>
<PsychoPy2experiment encoding="utf-8" version="3.0.1">
  <Settings>
    <Param name="Completed URL" updates="None" val="" 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="{u'session': u'001', u'participant': u''}" 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="html" valType="str"/>
    <Param name="Incomplete URL" updates="None" val="" valType="str"/>
    <Param name="JS libs" updates="None" val="packaged" valType="str"/>
    <Param name="Monitor" updates="None" val="testMonitor" valType="str"/>
    <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 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="Saved data folder" updates="None" val="" valType="code"/>
    <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="deg" valType="str"/>
    <Param name="Use version" updates="None" val="" valType="str"/>
    <Param name="Window size (pixels)" updates="None" val="[1920, 1080]" valType="code"/>
    <Param name="blendMode" updates="None" val="avg" valType="str"/>
    <Param name="color" updates="None" val="$[0,0,0]" valType="str"/>
    <Param name="colorSpace" updates="None" val="rgb" valType="str"/>
    <Param name="expName" updates="None" val="interleaved_SF_contrast" valType="str"/>
    <Param name="exportHTML" updates="None" val="on Sync" valType="str"/>
    <Param name="logging level" updates="None" val="exp" valType="code"/>
  </Settings>
  <Routines>
    <Routine name="trial">
      <CodeComponent name="setSide">
        <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="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="if random()&gt;0.5:&amp;#10;    pos = [-5,0] #this is deg visual angle&amp;#10;    correctAns = 'left'&amp;#10;else:&amp;#10;    pos = [+5,0]&amp;#10;    correctAns = 'right'" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Py" 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="trials.addOtherData('side',correctAns)" valType="extendedCode"/>
        <Param name="name" updates="None" val="setSide" valType="code"/>
      </CodeComponent>
      <StaticComponent name="ISI">
        <Param name="code" updates="None" val="" valType="code"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="name" updates="None" val="ISI" valType="code"/>
        <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="0.25" valType="code"/>
      </StaticComponent>
      <GratingComponent name="grating">
        <Param name="blendmode" updates="constant" val="avg" valType="str"/>
        <Param name="color" updates="set every repeat" val="$level" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="0.16" valType="code"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="gauss" valType="str"/>
        <Param name="name" updates="constant" val="grating" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="phase" updates="constant" val="0.0" valType="code"/>
        <Param name="pos" updates="set every repeat" val="pos" valType="code"/>
        <Param name="sf" updates="set every repeat" val="sf" valType="code"/>
        <Param name="size" updates="constant" val="4" valType="code"/>
        <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.5" valType="code"/>
        <Param name="stopType" updates="None" val="duration (frames)" valType="str"/>
        <Param name="stopVal" updates="constant" val="10" valType="code"/>
        <Param name="tex" updates="constant" val="sin" valType="str"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </GratingComponent>
      <KeyboardComponent name="resp">
        <Param name="allowedKeys" updates="constant" val="'left','right'" valType="code"/>
        <Param name="correctAns" updates="constant" val="$correctAns" valType="str"/>
        <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="resp" valType="code"/>
        <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.5" 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="True" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
      <GratingComponent name="fixation">
        <Param name="blendmode" updates="constant" val="avg" valType="str"/>
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="gauss" valType="str"/>
        <Param name="name" updates="constant" val="fixation" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="phase" updates="constant" val="0.0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <Param name="sf" updates="constant" val="None" valType="code"/>
        <Param name="size" updates="constant" val="1" valType="code"/>
        <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.25" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="tex" updates="constant" val="" valType="str"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </GratingComponent>
    </Routine>
    <Routine name="thanks">
      <TextComponent name="thanksMsg">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.1" valType="code"/>
        <Param name="name" updates="constant" val="thanksMsg" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <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="2.0" valType="code"/>
        <Param name="text" updates="constant" val="You're done! Fun, wasn't it!? ;-)" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
    </Routine>
    <Routine name="instructions">
      <TextComponent name="instrText">
        <Param name="color" updates="constant" val="white" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="1" valType="code"/>
        <Param name="name" updates="None" val="instrText" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <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="text" updates="constant" val="Press the left and right cursor keys to indicate whether the grating was on the left or right (there is always a correct answer). &amp;#10; &amp;#10;If you don't see anything then guess! &amp;#10; &amp;#10; &amp;#10;Press any key to continue" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
      <KeyboardComponent name="endInstructions">
        <Param name="allowedKeys" updates="constant" val="" valType="code"/>
        <Param name="correctAns" updates="constant" val="" valType="str"/>
        <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="endInstructions" valType="code"/>
        <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>
  </Routines>
  <Flow>
    <Routine name="instructions"/>
    <LoopInitiator loopType="MultiStairHandler" name="trials">
      <Param name="conditions" updates="None" val="[{u'startVal': 0.001, u'sf': 2, u'label': u'low_2'}, {u'startVal': 0.1, u'sf': 2, u'label': u'high_2'}, {u'startVal': 0.001, u'sf': 8, u'label': u'low_8'}, {u'startVal': 0.1, u'sf': 8, u'label': u'high_8'}]" valType="str"/>
      <Param name="conditionsFile" updates="None" val="stairDefinitions.xlsx" valType="str"/>
      <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="interleaved staircases" valType="str"/>
      <Param name="nReps" updates="None" val="40" valType="code"/>
      <Param name="name" updates="None" val="trials" valType="code"/>
      <Param name="stairType" updates="None" val="simple" valType="str"/>
      <Param name="switchMethod" updates="None" val="random" valType="str"/>
    </LoopInitiator>
    <Routine name="trial"/>
    <LoopTerminator name="trials"/>
    <Routine name="thanks"/>
  </Flow>
</PsychoPy2experiment>
