Beispiel #1
0
    def push_rotate(self, rotation):
        global FirstTouch
        global useTrigger
        if FirstTouch and useTrigger:
            Trigger().send(200)
            FirstTouch = False

        if rotation < 0:
            freq.value = freq.value / 1.00057778950655485929679257
        if rotation > 0:
            freq.value = freq.value * 1.00057778950655485929679257
Beispiel #2
0
                        font=sans,
                        alignHoriz='center',
                        alignVert='center',
                        color='white')

cross.draw()
myWin.flip()

trigger1 = True
trigger2 = True
end = True

while end:
    t = trialClock.getTime()
    if t >= 15 and trigger1:
        Trigger().send(33)
        trigger1 = False
        trialClock.reset()

    if t >= 300 and trigger2:
        Trigger().send(66)
        trigger2 = False
        end = False

    for key in event.getKeys():
        if key in ['escape']:
            myWin.close()
            core.quit()
        if key in ['return']:
            myWin.close()
            core.quit()
Beispiel #3
0
    ResponseInstruction.text = random.choice(notes)
    ResponseInstruction.draw()
    myWin.flip()

    # set conditions
    subject_response_finished = 0
    trialClock.reset()

    # receive mouse-wheel movement and tune frequency
    while subject_response_finished == 0:
        t = trialClock.getTime()

        # end trial if duration > 15s
        if t >= 15:
            if useTrigger:
                Trigger().send(202)
            sine.stop()
            cross.draw()
            myWin.flip()
            core.wait(3)
            subject_response_finished = 1
            trial_num += 1
            if trial_num >= 3:
                sine.stop()
                end = False

        # trigger events for escape key
        for key in event.getKeys():
            if key in ['escape']:
                sine.stop()
                myWin.close()
Beispiel #4
0
def PATTrial(notes, rep):
    global FirstTouch, green, blue
    cross = visual.TextStim(myWin,
                            units='norm',
                            height=0.4,
                            pos=(0, 0),
                            text="+",
                            font=sans,
                            alignHoriz='center',
                            alignVert='center',
                            color='white')

    end = True
    trialClock = core.Clock()

    len_notes = len(notes)
    trial_num = 0
    counter = rep * len_notes
    cross.draw()
    myWin.flip()
    core.wait(3)
    while end:
        random_note = random.choice(notes)
        notes.remove(random_note)

        if useTrigger:
            Trigger().send(notes_trig[random_note])

        # set random starting frequency/note and start sine-generator
        freq.value = rnd_tone()
        start_freq = freq.value

        sine.out()

        ResponseInstruction = visual.TextStim(myWin,
                                              units='norm',
                                              height=0.4,
                                              pos=(0, 0),
                                              text=random_note,
                                              font=sans,
                                              alignHoriz='center',
                                              alignVert='center',
                                              color='white')
        ResponseInstruction.draw()
        myWin.flip()

        # set conditions
        subject_response_finished = 0
        trialClock.reset()
        FirstTouch = True
        pause = 0

        time_expired = 'False'
        # receive mouse-wheel movement and tune frequency
        while subject_response_finished == 0:
            t = trialClock.getTime()

            # end trial if duration > 15s
            if t + pause >= 15:
                if useTrigger:
                    Trigger().send(202)
                sine.stop()
                cross.draw()
                myWin.flip()
                core.wait(3)
                subject_response_finished = 1
                time_expired = 'True'
                trial_num += 1
                if trial_num >= len_notes:
                    sine.stop()
                    end = False

            # trigger events for escape key
            for key in event.getKeys():
                if key in ['escape']:
                    sine.stop()
                    myWin.close()
                    core.quit()
                if key in ['p']:
                    sine.stop()
                    pause = pause + t
                    while True:
                        if 'p' in event.getKeys():
                            break
                    sine.out()
                    trialClock.reset()

            # continue with next trial if powermate-button pressed
            if blue:
                if useTrigger:
                    Trigger().send(201)
                sine.stop()
                cross.draw()
                myWin.flip()
                core.wait(3)
                subject_response_finished = 1
                blue = False
                trial_num += 1
                if trial_num >= len_notes:
                    sine.stop()
                    end = False
        a = counter + trial_num
        thisExpPat.addData('trial number', a)
        thisExpPat.addData('start frequency', start_freq)
        thisExpPat.addData('time expired', time_expired)
        thisExpPat.addData('entered frequency', freq.value)
        thisExpPat.addData('time', t)
        thisExpPat.addData('target note', random_note)
        thisExpPat.nextEntry()