Пример #1
0
    def __init__(self, win, conditions):

        #file paths for importing conditions, images and audio
        self.dir = os.path.dirname(__file__)
        image_path = 'Images/Tasks/'
        audio_path = 'Audio/General/'
        aud_practice_path = 'Audio/Practice/'
        aud_inst_path = 'Audio/Instructions/'
        self.phonologystim_dir = 'Audio/Stimuli/Phonology/'
        #get tempdir for phoneme generated on the go
        self.temp_dir = tempfile.gettempdir()


        ## initialize trial components ##

        #time components and time constrains for trial
        self.trialClock = core.Clock()
        self.t_initialspeaker = 1
        self.t_stimgap = 1
        self.timer_limit = 12

        #trial condition
        self.trialList=conditions

        #mouse
        self.mouse=event.Mouse(win=win)
        self.mouse.getPos()

        #start feedback
        self.fb=feedback.fb(win)
        self.tf=task_function.task_functions(win)

        #create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for question in range(len(self.trialList)):
            self.iteration[question] = 0

        #list to keep track of history of answers
        self.answer_history = []


        ## initialize text, audio & image stimuli ##

        #practice instructions texts
        self.practice_cue1 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")
        self.practice_cue2 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")

        #audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path + 'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(aud_practice_path + 'practice_cue3.wav')

        #create stimuli images & buttons
        self.speaker = visual.ImageStim(win=win, name='speaker',image=image_path +'/speaker.png', mask = None, units=u'pix',ori=0, pos=[0,200], size=[115,115])
        self.speaker_playing = visual.ImageStim(win=win, name='speaker',units=u'pix',image=image_path +'/speaker_playing_white.png', mask = None,ori=0, pos=[45,200], size=[220,155])
        self.same_button = visual.ImageStim(win, image=image_path + '/happy_button.png', pos=[-260, -200])
        self.different_button = visual.ImageStim(win, image=image_path + '/sad_button.png', pos=[260, -200])
Пример #2
0
    def __init__(self, win, conditions):

        #file paths for importing conditions, images and audio
        self.fn = os.path.dirname(__file__)
        image_path = 'Images/Tasks/'
        audio_path = 'Audio/General/'
        aud_practice_path = 'Audio/Practice/'
        aud_inst_path = 'Audio/Instructions/'
        self.dotstim_path = 'Images/Stimuli/Dots/'


        ## initialize trial components ##

        #time components and time constrains for trial
        self.trialClock=core.Clock()
        self.timer_limit = 3
        self.t_fixcross = 1.5
        self.t_fixline = 1.5

        #trial condition
        self.trialList=conditions

        #mouse
        self.mouse=event.Mouse(win=win)
        self.mouse.getPos()

        #start feedback
        self.fb=feedback.fb(win)
        self.tf=task_function.task_functions(win)

        #create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for question in range(len(self.trialList)):
            self.iteration[question] = 0


        ## initialize text, audio & image stimuli ##

        #practice instruction texts
        self.practice_cue1 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")
        self.practice_cue2 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")

        #audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path + 'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(aud_practice_path + 'practice_cue3.wav')
        
        #fixation point, mask and blank
        self.fix_point=visual.TextStim(win, ori=0, font=u'Arial', pos=[0, 0], color=u'white',text=u'+')
        self.right_mask = visual.ImageStim(win, units=u'pix', image= image_path +'mask.jpg', pos=[230,0],size=[400,600])
        self.blank=visual.TextStim(win, ori=0, text=None)
        self.target = visual.ImageStim(win,image=None,pos=[0,0],size=[400,600])
        self.foil = visual.ImageStim(win,image=None,pos=[0,0],size=[400,600])
        self.target_box = visual.ImageStim(win,image= image_path +'box.png',pos=[0,0],size=[420,620])
        self.foil_box = visual.ImageStim(win,image= image_path +'box.png',pos=[0,0],size=[420,620])
Пример #3
0
    def __init__(self, win):

        #file paths for importing conditions, images and audio
        self.fn = os.path.dirname(__file__)
        self.image_path = 'Images/Tasks/'
        self.audio_path = 'Audio/General/'
        self.aud_practice_path = 'Audio/Practice/'
        self.aud_inst_path = 'Audio/Instructions/'

        ## initialize trial components ##

        #time components and time constrains for trial
        self.trialClock=core.Clock()
        self.t_blank = 2
        self.t_twinkle = 2
        self.t_mask = 1
        self.timer_limit = 12

        #start feedback
        self.fb=feedback.fb(win)
        self.tf=task_function.task_functions(win)

        # number of degrees to exclude for star placement-- degrees given will be excluded on each side of the cardinal directions
        self.cardinal_exclusion_range = 7

        #create possible star positions in degrees
        self.degree_possibilities = []
        for x in [45,135,225,315]: self.degree_possibilities.extend(range(x-(44-self.cardinal_exclusion_range), x+(45-self.cardinal_exclusion_range)))
        

        ## initialize text, audio & image stimuli ##
        
        #practice instructions texts
        self.practice_instructions1 = visual.TextStim(win, units='pix', pos=[0,0], height=20, text='Practice set 1: administrator demonstrates to child')
        self.practice_instructions2 = visual.TextStim(win, units='pix', pos=[0,0], height=20, text='Practice set 2: administrator walks through trials with child')
        self.practice_instructions3 = visual.TextStim(win, units='pix', pos=[0,0], height=20, text='Practice set 3: child completes trials on his/her own')
        self.try_again = visual.TextStim(win, units='pix', pos=[0,0], height=20, text="Let's try that again.")
        
        #audio files for practice and instructions
        self.practice_cue2 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")
        self.practice_aud1 = sound.Sound(self.aud_practice_path + 'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(self.aud_practice_path + 'practice_cue3.wav')
        
        #stimuli components
        self.bintang = visual.ImageStim(win=win, name='bintang', image = self.image_path + '/star.png', units = 'pix', ori = 0, pos = [0,0], size = [60, 60], opacity = 1, mask =None, interpolate = True)#stimulus
        self.twinkle = visual.ImageStim(win=win, name='twinkle', image = self.image_path + '/twinklingstar.png', units=u'pix', ori = 0, pos = [0,0], size = [62, 62], opacity = 1, mask =None, interpolate = True)#twinkle
        self.twinkle2 = visual.ImageStim(win=win, name='twinkle2', image = self.image_path + '/twinklingstar.png', units=u'pix', ori = 0, pos = [0,0], size = [62, 62], opacity = 1, mask =None, interpolate = True)#twinklefor END routine
        self.star_selected = visual.ImageStim(win=win, name='star_selected', image = self.image_path + '/star_selected.png', units = 'pix', ori = 0, size = [60, 60])
        self.drag = visual.ImageStim(win=win, name = 'drag', image = self.image_path + '/star2.png', units = 'pix', ori = 0, pos = [0,0], size = [60, 60], opacity = 1, mask =None, interpolate = True)
        self.circledrag = visual.Circle(win, name = 'circledrag', units = u'pix', radius = 30, ori=0, pos = [0,0])
        self.circletwinkle = visual.Circle(win, name = 'circletwinkle', units = u'pix', radius = 30, ori=0, pos = [0,0])
        self.mask = visual.ImageStim(win, name='mask2', image = self.image_path + '/mask.jpg', units=u'pix', ori=0, pos=[0, 0], size=[1500,850], opacity = 1, mask =None, interpolate = True)
        self.blank=visual.TextStim(win, ori=0, font=u'Arial', pos=[0, 0], color=u'white', text='+', height=30)
        self.mouse=event.Mouse(win=win); self.mouse.getPos()
Пример #4
0
    def __init__(self, win, conditions):
        
        #file paths for importing conditions, images and audio
        self.fn = os.path.dirname(__file__)
        image_path = 'Images/Tasks/'
        audio_path = 'Audio/General/'
        aud_practice_path = 'Audio/Practice/'
        aud_inst_path = 'Audio/Instructions/'
        self.readingstim_path = 'Audio/Stimuli/Reading/'
        self.temp_dir = tempfile.gettempdir()

        ## initialize trial components ##

        #time components and time constrains for trial
        self.globalClock = core.Clock()#to keep track of time
        self.trialClock = core.Clock()#to keep track of time
        self.t_initialbuttons = 1
        self.t_initialspeaker = 1.5
        self.timer_limit = 12

        #trial condition
        self.trialList = conditions

        #mouse
        self.mouse=event.Mouse(win=win)
        self.mouse.getPos()

        #start feedback
        self.fb=feedback.fb(win)
        self.tf=task_function.task_functions(win)

        #create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for question in range(len(self.trialList)):
            self.iteration[question] = 0


        ## initialize text, audio & image stimuli ##

        #practice instructions texts
        self.practice_cue1 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")
        self.practice_cue2 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")

        #audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path + 'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(aud_practice_path + 'practice_cue3.wav')
        
        #for stimuli texts
        self.target = visual.TextStim(win, pos=[0,0],height=45, text='target.')
        self.foil1 = visual.TextStim(win, pos=[0,0],height=45, text='foil1.')
        self.foil2 = visual.TextStim(win, pos=[0,0],height=45, text='foil2.')
        self.foil3 = visual.TextStim(win, pos=[0,0],height=45, text='foil3.')

        #for 2 & 4 buttons
        self.target_2button=visual.ImageStim(win=win, name='target_2button', image= image_path + 'general_button.png', units=u'pix', pos=[260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil_2button=visual.ImageStim(win, name='foil_2button', image= image_path + 'general_button.png', units=u'pix', pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.target_4button=visual.ImageStim(win=win, name='target_4button', image=image_path + '/general_button_4.png', units=u'pix')#, pos=[260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil1_4button=visual.ImageStim(win, name='foil1_4button', image=image_path + '/general_button_4.png', units=u'pix')#, pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil2_4button=visual.ImageStim(win, name='foil2_4button', image=image_path + '/general_button_4.png', units=u'pix')#, pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil3_4button=visual.ImageStim(win, name='foil3_4button', image=image_path + '/general_button_4.png', units=u'pix')#, pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],

        #speaker
        self.speaker = visual.ImageStim(win=win, name='speaker', image=image_path + '/speaker.png', mask = None, units=u'pix', ori=0, pos=[0,200], size=[115,115])
        self.speaker_playing = visual.ImageStim(win=win, name='speaker',units=u'pix', image=image_path + '/speaker_playing_white.png', mask = None, ori=0, pos=[45,200], size=[220,155])
        #feedback
        self.correct = visual.ImageStim(win=win, name='correct', image=image_path + '/green_check2.png', pos=[0,0], size=[128, 128])
        self.incorrect = visual.ImageStim(win=win, name='incorrect', image=image_path + '/red_x.png', units=u'pix', pos=[0, 0], size=[128, 128], color=[1,1,1], colorSpace=u'rgb', opacity=1)
        self.feedback = [self.incorrect, self.correct]
    def __init__(self, win, conditions):

        # file paths for importing conditions, images and audio
        self.dir = os.path.dirname(__file__)
        image_path = "Images/Tasks/"
        audio_path = "Audio/General/"
        aud_practice_path = "Audio/Practice/"
        aud_inst_path = "Audio/Instructions/"
        self.phonologystim_dir = "Audio/Stimuli/Phonology/"
        # get tempdir for phoneme generated on the go
        self.temp_dir = tempfile.gettempdir()

        ## initialize trial components ##

        # time components and time constrains for trial
        self.trialClock = core.Clock()
        self.t_initialspeaker = 1
        self.t_stimgap = 1
        self.timer_limit = 12

        # trial condition
        self.trialList = conditions

        # mouse
        self.mouse = event.Mouse(win=win)
        self.mouse.getPos()

        # start feedback
        self.fb = feedback.fb(win)
        self.tf = task_function.task_functions(win)

        # create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for question in range(len(self.trialList)):
            self.iteration[question] = 0

        # list to keep track of history of answers
        self.answer_history = []

        ## initialize text, audio & image stimuli ##

        # practice instructions texts
        self.practice_cue1 = visual.TextStim(
            win, units=u"pix", wrapWidth=700, pos=[0, 0], height=28, text="Touch anywhere to begin."
        )
        self.practice_cue2 = visual.TextStim(
            win, units=u"pix", wrapWidth=700, pos=[0, 0], height=28, text="Let's do some more."
        )
        self.practice_cue3 = visual.TextStim(
            win, units=u"pix", wrapWidth=700, pos=[0, 0], height=28, text="Touch anywhere to begin."
        )

        # audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path + "practice_cue1.wav")
        self.practice_aud3 = sound.Sound(aud_practice_path + "practice_cue3.wav")

        # create stimuli images & buttons
        self.speaker = visual.ImageStim(
            win=win,
            name="speaker",
            image=image_path + "/speaker.png",
            mask=None,
            units=u"pix",
            ori=0,
            pos=[0, 200],
            size=[115, 115],
        )
        self.speaker_playing = visual.ImageStim(
            win=win,
            name="speaker",
            units=u"pix",
            image=image_path + "/speaker_playing_white.png",
            mask=None,
            ori=0,
            pos=[45, 200],
            size=[220, 155],
        )
        self.same_button = visual.ImageStim(win, image=image_path + "/happy_button.png", pos=[-260, -200])
        self.different_button = visual.ImageStim(win, image=image_path + "/sad_button.png", pos=[260, -200])
Пример #6
0
    def __init__(self, win, conditions):

        #file paths for importing conditions, images and audio
        self.fn = os.path.dirname(__file__)
        image_path = 'Images/Tasks/'
        audio_path = 'Audio/General/'
        aud_practice_path = 'Audio/Practice/'
        aud_inst_path = 'Audio/Instructions/'
        self.readingstim_path = 'Audio/Stimuli/Reading/'
        self.temp_dir = tempfile.gettempdir()

        ## initialize trial components ##

        #time components and time constrains for trial
        self.globalClock = core.Clock()  #to keep track of time
        self.trialClock = core.Clock()  #to keep track of time
        self.t_initialbuttons = 1
        self.t_initialspeaker = 1.5
        self.timer_limit = 12

        #trial condition
        self.trialList = conditions

        #mouse
        self.mouse = event.Mouse(win=win)
        self.mouse.getPos()

        #start feedback
        self.fb = feedback.fb(win)
        self.tf = task_function.task_functions(win)

        #create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for question in range(len(self.trialList)):
            self.iteration[question] = 0

        ## initialize text, audio & image stimuli ##

        #practice instructions texts
        self.practice_cue1 = visual.TextStim(win,
                                             units=u'pix',
                                             wrapWidth=700,
                                             pos=[0, 0],
                                             height=28,
                                             text="Touch anywhere to begin.")
        self.practice_cue2 = visual.TextStim(win,
                                             units=u'pix',
                                             wrapWidth=700,
                                             pos=[0, 0],
                                             height=28,
                                             text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win,
                                             units=u'pix',
                                             wrapWidth=700,
                                             pos=[0, 0],
                                             height=28,
                                             text="Touch anywhere to begin.")

        #audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path +
                                         'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(aud_practice_path +
                                         'practice_cue3.wav')

        #for stimuli texts
        self.target = visual.TextStim(win,
                                      pos=[0, 0],
                                      height=45,
                                      text='target.')
        self.foil1 = visual.TextStim(win, pos=[0, 0], height=45, text='foil1.')
        self.foil2 = visual.TextStim(win, pos=[0, 0], height=45, text='foil2.')
        self.foil3 = visual.TextStim(win, pos=[0, 0], height=45, text='foil3.')

        #for 2 & 4 buttons
        self.target_2button = visual.ImageStim(win=win,
                                               name='target_2button',
                                               image=image_path +
                                               'general_button.png',
                                               units=u'pix',
                                               pos=[260, -200],
                                               size=[322, 100],
                                               color=[1, 1, 1],
                                               colorSpace=u'rgb',
                                               opacity=1.0)  #size=[322,152],
        self.foil_2button = visual.ImageStim(win,
                                             name='foil_2button',
                                             image=image_path +
                                             'general_button.png',
                                             units=u'pix',
                                             pos=[-260, -200],
                                             size=[322, 100],
                                             color=[1, 1, 1],
                                             colorSpace=u'rgb',
                                             opacity=1.0)  #size=[322,152],
        self.target_4button = visual.ImageStim(
            win=win,
            name='target_4button',
            image=image_path + '/general_button_4.png',
            units=u'pix'
        )  #, pos=[260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil1_4button = visual.ImageStim(
            win,
            name='foil1_4button',
            image=image_path + '/general_button_4.png',
            units=u'pix'
        )  #, pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil2_4button = visual.ImageStim(
            win,
            name='foil2_4button',
            image=image_path + '/general_button_4.png',
            units=u'pix'
        )  #, pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],
        self.foil3_4button = visual.ImageStim(
            win,
            name='foil3_4button',
            image=image_path + '/general_button_4.png',
            units=u'pix'
        )  #, pos=[-260, -200], size=[322,100], color=[1,1,1], colorSpace=u'rgb', opacity=1.0) #size=[322,152],

        #speaker
        self.speaker = visual.ImageStim(win=win,
                                        name='speaker',
                                        image=image_path + '/speaker.png',
                                        mask=None,
                                        units=u'pix',
                                        ori=0,
                                        pos=[0, 200],
                                        size=[115, 115])
        self.speaker_playing = visual.ImageStim(win=win,
                                                name='speaker',
                                                units=u'pix',
                                                image=image_path +
                                                '/speaker_playing_white.png',
                                                mask=None,
                                                ori=0,
                                                pos=[45, 200],
                                                size=[220, 155])
        #feedback
        self.correct = visual.ImageStim(win=win,
                                        name='correct',
                                        image=image_path + '/green_check2.png',
                                        pos=[0, 0],
                                        size=[128, 128])
        self.incorrect = visual.ImageStim(win=win,
                                          name='incorrect',
                                          image=image_path + '/red_x.png',
                                          units=u'pix',
                                          pos=[0, 0],
                                          size=[128, 128],
                                          color=[1, 1, 1],
                                          colorSpace=u'rgb',
                                          opacity=1)
        self.feedback = [self.incorrect, self.correct]
Пример #7
0
    def __init__(self, win, conditions):

        #file paths for importing conditions, images and audio
        self.dir = os.path.dirname(__file__)
        image_path = 'Images/Tasks/'
        audio_path = 'Audio/General/'
        aud_practice_path = 'Audio/Practice/'
        aud_inst_path = 'Audio/Instructions/'
        self.math_dotstims_path = 'Images/Stimuli/Math_dotstims/'


        ## initialize trial components ##

        #time components and time constrains for trial
        self.trialClock = core.Clock()
        self.timer_limit = 12

        #trial condition
        self.trialList=conditions

        #mouse
        self.mouse=event.Mouse(win=win)
        self.mouse.getPos()

        #start feedback
        self.fb=feedback.fb(win)
        self.tf=task_function.task_functions(win)

        #create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for operation in ['addition','subtraction','multiplication','division']:
            self.iteration[operation] = {}
            for question in range(len(self.trialList[operation])):
                self.iteration[operation][question] = 0


        ## initialize text, audio & image stimuli ##

        #practice instructions texts
        self.practice_cue1 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")
        self.practice_cue2 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")

        #audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path + 'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(aud_practice_path + 'practice_cue3.wav')

        #create stimuli
        self.text_stimulus = visual.TextStim(win, pos=[0,200],height=80, text='Stimulus.')
        self.dot_stimulus = visual.ImageStim(win,image=None,pos=[0,180],size=[260,260])
        self.fixation = visual.ImageStim(win, color='black', image=None, mask='circle',size=5)
        
        #for stimuli texts
        self.target = visual.TextStim(win, pos=[0,0],height=70, text='Target.')
        self.foil1 = visual.TextStim(win, pos=[0,0],height=70, text='Foil1')
        self.foil2 = visual.TextStim(win, pos=[0,0],height=70, text='Foil2')
        self.foil3 = visual.TextStim(win, pos=[0,0],height=70, text='Foil3')
        
        #for 2 & 4 buttons
        self.target_2button = visual.ImageStim(win,image= image_path + '/general_button.png')
        self.foil_2button = visual.ImageStim(win, image= image_path + '/general_button.png')
        self.target_4button = visual.ImageStim(win, image= image_path + '/general_button_4.png')#, size=[300,120])
        self.foil1_4button = visual.ImageStim(win, image= image_path + '/general_button_4.png')#, size=[300,120])
        self.foil2_4button = visual.ImageStim(win, image= image_path + '/general_button_4.png')
        self.foil3_4button = visual.ImageStim(win, image= image_path + '/general_button_4.png')
Пример #8
0
    def __init__(self, win, conditions):

        #file paths for importing conditions, images and audio
        self.fn = os.path.dirname(__file__)
        image_path = 'Images/Tasks/'
        audio_path = 'Audio/General/'
        aud_practice_path = 'Audio/Practice/'
        aud_inst_path = 'Audio/Instructions/'
        #get temp directory
        self.temp_dir = tempfile.gettempdir()
        self.stim_dir = 'Audio/Stimuli/Tones'


        ## initialize trial components ##

        #time components and time constrains for trial
        self.trialClock = core.Clock()
        self.t_initialspeaker = 1
        self.t_stimgap = 1
        self.timer_limit = 12

        #trial condition
        self.trialList=conditions

        #mouse
        self.mouse=event.Mouse(win=win)
        self.mouse.getPos()

        #start feedback
        self.fb=feedback.fb(win)
        self.tf=task_function.task_functions(win)

        #create tone dictionary and set values for notes
        self.tone_key = {'1':'C','2':'C#','3':'D','4':'D#','5':'E','6':'F','7':'F#','8':'G','9':'G#','10':'A','11':'A#','12':'B'}
        self.freq_key = dict(C=261.62, Csh=277.18,D=293.66,Dsh=311.13,E=329.63,F=349.23,
            Fsh=369.99,G=392.00,Gsh=415.30,A=440.00,Ash=466.16, B=493.88)
        self.q_int = 0.029302 #quarter note ratio

        #create a dictionary to keep track of how many times you've displayed each difficulty level
        self.iteration = {}
        for question in range(len(self.trialList)):
            self.iteration[question] = 0

        #answer history list
        self.answer_history = []


        ## initialize text, audio & image stimuli ##

        #practice instructions texts
        self.practice_cue1 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")
        self.practice_cue2 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Let's do some more.")
        self.practice_cue3 = visual.TextStim(win, units=u'pix', wrapWidth=700, pos=[0,0],height=28,text="Touch anywhere to begin.")

        #audio files for practice and instructions
        self.practice_aud1 = sound.Sound(aud_practice_path + 'practice_cue1.wav')
        self.practice_aud3 = sound.Sound(aud_practice_path + 'practice_cue3.wav')
        
        #create stimuli images & buttons
        self.speaker = visual.ImageStim(win=win, name='speaker',image=image_path + 'speaker.png', mask = None, units=u'pix',ori=0, pos=[0,200], size=[115,115])
        self.speaker_playing = visual.ImageStim(win=win, name='speaker',units=u'pix',image=image_path + 'speaker_playing_white.png', mask = None,ori=0, pos=[45,200], size=[220,155])
        self.same_button = visual.ImageStim(win, image= image_path + 'happy_button.png', pos=[-260, -200])
        self.different_button = visual.ImageStim(win, image= image_path + 'sad_button.png', pos=[260, -200])